有很多应用程序可用于提取各种类型的存档文件。 记住每个存档工具的所有选项和参数对您来说会很困难。 不用担心! 今天,我遇到了一个简单的 Bash 函数,用于在 Linux 中提取各种类型的文件存档。
这个 Bash 功能可以提取最常用的存档格式,例如 .tar.bz2
, .tar.bz
, .bz2
, .rar
, .zip
, 和 .7z
等您不需要使用实际的归档应用程序来提取归档文件! 只需将此函数添加到您的 ~/.bashrc 文件中并调用它来提取存档文件。 它将自动查找并使用适当的归档工具来提取文件。 无需记住标志和选项!
用于提取文件档案的 Bash 函数
打开你的 ~/.bashrc
文件在您选择的文本编辑器中:
$ nano ~/.bashrc
在末尾添加以下代码段:
# Bash Function To Extract File Archives Of Various Types extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) rar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via extract()" ;; esac else echo "'$1' is not a valid file" fi }
按 Ctrl+o
并按 ENTER 保存文件,然后按 Ctrl+
x 退出文件。 运行以下命令使更改生效:
$ source ~/.bashrc
从现在开始,您可以简单地调用该函数来提取各种类型的存档文件。
为了 example我要提取一个 .7z
使用命令归档文件类型:
$ extract archive.7z
样本输出:
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM) Scanning the drive for archives: 1 file, 16013693 bytes (16 MiB) Extracting archive: archive.7z -- Path = archive.7z Type = 7z Physical Size = 16013693 Headers Size = 1204 Method = LZMA:23 Solid = + Blocks = 1 Everything is Ok Folders: 21 Files: 37 Size: 16625007 Compressed: 16013693
同样,要提取 .zip
键入文件,命令将是:
$ extract archive.zip
请注意,您必须先安装相应的存档管理器,然后才能使用此功能。 如果您的系统上没有安装受支持的存档工具,您将收到如下错误消息:
$ extract archive.zip bash: /usr/bin/unzip: No such file or directory
该脚本的原作者不详。 Internet 上的多个地方都提到了此脚本。 如果有人知道这是谁写的,请在下面的评论部分告诉我。 我将添加作者的详细信息。
你在使用任何其他很酷的 Bash 功能吗? 请通过评论部分分享它们。 它对我和所有读者都可能有用。
相关阅读:
- 在 Linux 中重命名文件而不输入两次全名
- Bash 提示 – 如何在一个命令中执行 cp 或 mv 和 cd
- [Bash Tips] 如何在一个命令中使用 cd 和 ls
- 如何在 Linux 中归档文件和目录 [Part 1]