我总是忘记每种压缩格式对应的提取命令。
因此,我考虑编写一个脚本,仅将文件扩展名映射到适当的提取命令。但我猜类似的东西已经存在,我只是找不到它。
我对 file-roller 之类的东西很满意,但是 file-roller 是一个 GUI 工具。
答案1
一些建议:
统一国民党
unp(可从软件中心获得)是一个小型 perl 模块,它将把各种档案解压到当前文件夹中。使用unp -s
它支持的档案格式
默认情况下,它将档案解压到当前文件夹中。
文件滚轮
file-roller 本身可以从命令行运行。用于file-roller -h <archive name>
解压缩档案。
答案2
从这里,将其放入你的 .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
}
答案3
尚未提及的是瑞士军刀命令行实用程序:atool
;它在存储库中可用:单击一个工具 或运行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
在命令中指定了强制选项()。
正如手册页所述,aunpack 首先提取
文件保存到一个唯一的(临时)目录中,然后尽可能将其内容移回。这也可以防止本地文件被错误覆盖。
使用其他工具,可以采取其他行动,正如手册页:
- 一个背包根据文件或文件夹指定或标准输入创建档案
- 艾尔斯 列出指定档案内的文件
- 一只猫可以将存档文件提取到 stdout
- 差异使您可以比较指定的两个档案
- 包装通过将原始档案的内容放在临时文件夹中,然后重新打包新的文件夹,可以将一种档案格式转换为另一种档案格式。
所有实用程序都有许多有用的选项,但最常用的选项可能是 aunpack,因为它可以轻松提取多个不同的档案。只需发出一个命令即可提取多种不同的档案格式,而无需使用 tar、zip 等各种命令,这真是太棒了。
有关如何将 atool 函数集成到文件管理器(如 Thunar)的自定义操作中的最新文章,请参阅这本在线杂志。
答案4
您需要处理哪种格式?一种方法是编写一个 shell 脚本,检查其参数的扩展名。或者,如果您处理的只是 .tar.* 的变体,那么只需执行此操作tar -xf
即可自动处理其中的大部分内容。(因此,我只记得这一点,unzip
这足以应付我通常遇到的所有问题。)