使用单个命令提取 Linux 中的所有压缩文件

Linux 和 Windows 上都有很多压缩标准和文件格式,例如 .tar.gz、.tar.xz、.7z、.rar、.tar.bz .tar、.tbz2、.zip、.bz2、还有很多。 虽然您当然可以(并且应该)记住所有命令。 但这需要艰苦的工作。

为什么不创建一个脚本来简化提取过程呢? 在本文中,我们将做到这一点。

备份你的 .bashrc

在我们修改 BashRC 中的任何内容之前,让我们先备份它,以便在出现问题时可以恢复它。 打开您的终端应用程序,然后键入以下命令:

cp .bashrc bash.bak 

安装所有提取包

为了让这个脚本工作,我们需要在我们的系统上安装一些包。 为此,请打开终端并根据您的发行版键入以下命令:

对于 Ubuntu 和基于 Ubuntu 的系统:

sudo apt update && sudo apt install unrar p7zip-full p7zip-rar unzip gzip 

对于 Arch Linux 和基于 Arch 的发行版:

yay -S 7-zip && sudo pacman -S unrar unzip gzip 

为了 Fedora 工作站:

sudo dnf install p7zip p7zip-plugins unrar unzip gzip 

编写一个 Bash 脚本来提取所有包

在终端中,在您喜欢的文本编辑器(例如 nano 或 vim)中打开 bashrc 文件,如下所示:

nano .bashrc 

要么

vim .bashrc 

转到底部,然后复制并粘贴以下脚本:

extract () {     if [ -f $1 ] ; then             case $1 in             *.tar.bz2)    tar xvjf $1    ;;             *.tar.gz)    tar xvzf $1    ;;             *.tar.xz)    tar xf $1      ;;             *.bz2)        bunzip2 $1     ;;             *.rar)        unrar x $1     ;;             *.gz)        gunzip $1      ;;             *.tar)        tar xvf $1     ;;             *.tbz2)        tar xvjf $1    ;;             *.tgz)        tar xvzf $1    ;;             *.zip)        unzip $1       ;;             *.Z)        uncompress $1  ;;             *.7z)        7z x $1        ;;             *)        echo "don't know how to extract '$1'..." ;;             esac     else             echo "'$1' is not a valid file!"     fi  } 
修改你的 Vimrc 文件

按 Ctrl+O 保存文件,然后按 Ctrl+X 退出 nano 文本编辑器。 或者按 Escape 键并在 vim 文本编辑器中输入 :wq 保存并退出。

重新加载 Bash

现在重新加载你的 bash 以便它通过重新启动终端或键入以下命令来识别新创建的 bashrc 文件:

source .bashrc 

创建压缩样本文件

使用此命令创建多个文件夹:

mkdir folder1 folder2 folder3 

现在使用以下命令压缩它们:

tar -czvf folders.tar.gz folder1 folder2 folder3 

删除这些文件夹,因为我们将演示它们的提取,它将创建一个副本。

rm -r folder1 folder2 folder3 

使用我们的自定义命令提取压缩文件

现在我们知道提取 tar.gz 文件需要我们运行 tar xzvf archivename 命令,但我们可以简单地编写以下命令来提取任何压缩文件:

extract folders.tar.gz 
使用我们的脚本进行提取

概括

正如我们所看到的,我们的小脚本就像一个魅力。 您可以通过键入使用此命令提取任何压缩文件格式 extract filename.extension.