如何从命令行快速提取各种归档文件?

如何从命令行快速提取各种归档文件?

很多时候我需要使用命令行提取不同类型的存档文件。但我并不总是记得任何类型的文件存档的确切命令。所以我不得不浪费时间再次搜索。我该如何避免这种情况?

答案1

您可以使用以下 shell 脚本(我为其命名extract并将其放入~/bin):

/bin/bash #!/bin/bash

如果 [ $# -lt 1 ];则
  echo“用法:`basename $0`文件”
  出口 1

#我发现以下功能https://unix.stackexchange.com/a/168/37944
#我对其进行了改进。非常感谢西多对于这个想法。
提炼 () {
    对于 $@ 中的 arg ;执行
        如果 [ -f $arg ] ;​​ 那么
            案例 $arg 在
                *.tar.bz2) tar xjf $arg ;;
                *.tar.gz) tar xzf $arg ;;
                *.bz2) bunzip2 $arg ;;
                *.gz) gunzip $arg ;;
                *.tar) tar xf $arg ;;
                *.tbz2) tar xjf $arg ;;
                *.tgz) tar xzf $arg ;;
                *.zip) 解压缩 $arg ;;
                *.Z) 解压缩 $arg ;;
                *.rar) rar x $arg ;; # 必须安装 'rar'
                *.jar) jar -xvf $arg ;; # 必须安装 'jdk'
                *) echo "无法通过 extract() 提取‘$arg’" ;;
            埃萨克
        别的
            echo“'$arg'不是有效文件”
    完毕
}

提取 $@

不要忘记使脚本可执行:

chmod +x ~/bin/extract

用法:

提炼文件_1 文件_2 ... 文件_n 

答案2

dtrx在这件事上,指挥部是你的朋友。

它通过猜测文件类型来解压任何存档文件。它还将确保将解压的文件放入新目录中;避免当前工作目录被大量文件弄乱。

安装

sudo aptitude install dtrx

用法

dtrx stuff.zip

相关内容