Answers:
在这里,放入您的.bashrc:
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 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
什么还没有提到的是瑞士军队刀的命令行实用程序:atool
; 它在存储库中可用:单击atool 或run sudo apt-get install atool
。
atool
实际上是一个包含各种功能的脚本,例如aunpack,apack,als,acat,adiff和arepack。该程序最常见的用途可能是使用aunpack命令提取档案。有很多有趣且有用的选项,但是提取大多数归档文件的基本方法只是运行,例如,
aunpack myarchive.tar
对tar,7z,zip,jar,rar,ar,lha以及其他更多归档格式的支持及其变体可通过man atool
在终端中输入内容或在线查看Ubuntu手册来记录。
因此,有用的是,如果您在同一文件夹中有tar,zip和gz归档文件,则提取它们所需要做的就是运行
aunpack -e *
并且所有受支持的档案将解压缩并保留其文件夹结构。如果生成的文件夹的名称已经存在,则不会被覆盖,但是将被赋予唯一的名称,例如unpack-5645。
或者,如果您只想选择一种存档文件并将其解压缩,请改用
aunpack -e *.zip
如果您需要直接在特定目录中解压缩文件,并且仅保留子文件夹目录结构(如果退出),请输入,例如
aunpack -e Scripts11.zip -X /home/mike/Videos
如果已经存在同名文件,则除非您-f
在命令中指定了force选项(),否则系统将提示您进行重命名或覆盖操作。
如联机帮助页所述,unpack首先提取
将文件复制到唯一的(临时)目录,然后尽可能将其内容移回。这也可以防止本地文件被错误覆盖。
使用其他工具,可以执行其他操作,如手册页所述:
所有实用程序都有许多更有用的选项,但是使用最多的一种可能是aunpack,因为这样可以轻松提取多个不同的档案。能够仅发出一个命令并能够提取多种不同的存档格式,而不必对tar,zip等使用各种命令,这是很棒的。
有关描述如何将atool函数集成到文件管理器(例如Thunar)的自定义操作中的最新文章,请参阅此在线杂志。
有一个工具叫做dtrx
-正确提取。
从Ubuntu存储库安装它并运行dtrx somefile.someext
。该工具将以交互方式向用户查询嵌套档案(zip文件的zip)。
dtrx是frabjous的摘录的复杂版本。