用于提取各种类型文件档案的 Bash 函数

有很多应用程序可用于提取各种类型的存档文件。 记住每个存档工具的所有选项和参数对您来说很困难。 不用担心! 今天,我在Linux中遇到了一个简单的Bash函数来提取各种类型的文件档案。

这个 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 }
Bash 函数提取各种类型的文件档案

Ctrl+o 并按 ENTER 保存文件,然后按 Ctrl+x 退出文件。 运行以下命令使更改生效:

$ source ~/.bashrc

从现在开始,您只需调用此函数即可提取各种类型的存档文件。

例如,我要提取一个 .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

该脚本的原作者不详。 互联网上多处提到了这个脚本。 如果有人知道这是谁写的,请在下面的评论部分告诉我。 我将添加作者的详细信息。

你在使用任何其他很酷的 Bash 函数吗? 请通过评论部分分享它们。 它可能对我以及所有读者有用。

相关阅读:

  • 在 Linux 中重命名文件而无需两次输入全名
  • Bash 技巧 – 如何在一个命令中执行 cp 或 mv 和 cd
  • [Bash Tips] 如何在一个命令中 cd 和 ls
  • 如何在 Linux 中归档文件和目录 [Part 1]

BASHBash 函数提取文件档案提取文件Linux