是否有任何程序可以为多种存档类型提供一致的界面?


13

目前,如果我下载了压缩文件,则可能是.tar.gz档案,tar.bz2档案,.zip档案或.gz档案中的任何一个。而且每次这样做时,我都必须记住该程序的命令行选项是什么。

是否有任何我可以去的CLI程序:

取消压缩somefile。

让它找出档案的格式?(过长的名称,用于避免与任何实际程序冲突)


我无法找到或创建任何标记,如archivecompression等其他人可以添加正确的呢?
Macha

@Tshepang:固定。
Macha 2010年

Answers:


11

您可以使用p7zip。它会自动识别存档类型并解压缩。

p7zip是Unix / Linux 的7-Zip的命令行版本 ,由独立开发人员制作。

7z e <file_name>


5

我前一阵子发现了这个小片段,从那以后一直在使用它。我只是在我的.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
}

1
这比接受的答案更有效,因为7z e foo.tar.gz只剩下一个foo.tar文件。
Wilfred Hughes

2

在Debian / Ubuntu中有一个unp软件包,它是一个Perl脚本,充当许多归档实用程序的前端。



1

GNU tar(和星形)至少具有一些压缩自动检测功能:

tar xf foo.tar.gz
tar xf foo.tar.bz

正常工作。


它确实取决于tar的版本,该版本可以自动检测格式,但它不能正常工作... IIRC star实际上是一种更加标准化的方式,其中GNU的tar是非标准扩展。
xenoterracide

最新版本的GNU tar可以解压缩所有通过任何压缩过滤器开关(z,j,J,-lzma)创建的压缩档案,它将自动检测压缩。
polemon

@xenoterracide:好吧,star的作者以他一贯的风格批评了GNU tar-这些著作可能有偏见(忽略有关star的坏点和关于GNU tar的好点),可能包含一些FUD,并且可能已过时。
maxschlepzig

1

我认为,arkKDE归档工具可以在没有图形用户界面来运行。从ark联机帮助页

ark --batch archive.tar.bz2

将不显示任何GUI的情况下将archive.tar.bz2提取到当前目录中。

Arks对各种存档格式的支持取决于您安装的应用程序(例如,对于rar,它取决于unrar),但是我不知道它无法处理的任何格式。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.