Linux下有没有万能的解压方法,会自动分析拓展名,然后用不同的命令进行解压 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
oldcai
0.01D
V2EX    Linux

Linux下有没有万能的解压方法,会自动分析拓展名,然后用不同的命令进行解压

  •  
  •   oldcai
    PRO
    oldcai 2013-12-26 18:53:17 +08:00 8621 次点击
    这是一个创建于 4309 天前的主题,其中的信息可能已经有所发展或是发生改变。
    29 条回复    2016-12-26 15:58:13 +08:00
    Ever
        1
    Ever  
       2013-12-26 18:56:12 +08:00   1
    file-roller用libarchive
    aunpack也可以
    RagnarokStack
        2
    RagnarokStack  
       2013-12-26 19:07:58 +08:00
    unar,不过压缩包内的软连有时候解压出来会有错误
    foru17
        3
    foru17  
       2013-12-26 19:51:08 +08:00
    自己写个 function 不就行了,shell 还是很强大的。
    9hills
        4
    9hills  
       2013-12-26 19:52:47 +08:00
    GNOME自带的file-roller就可以
    ensonmj
        5
    ensonmj  
       2013-12-26 19:56:25 +08:00 via iPhone   1
    tar -xf
    wenLiangcan
        6
    wenLiangcan  
       2013-12-26 21:02:44 +08:00
    file-roller
    Ansen
        7
    Ansen  
       2013-12-26 21:05:25 +08:00
    同3楼
    自己写个脚本就行了
    momo5269
        8
    momo5269  
       2013-12-26 21:45:55 +08:00
    我是用peazip - -
    xdeng
        9
    xdeng  
       2013-12-26 21:48:43 +08:00 via iPhone
    扩展名假的。前四个字节 会比较准
    strak47
        10
    strak47  
       2013-12-26 22:19:17 +08:00
    yxjxx
        11
    yxjxx  
       2013-12-26 22:31:40 +08:00   1
    难道没有人在用zsh强大的alias么?
    示例:

    alias -s gz='tar -xzvf'
    alias -s tgz='tar -xzvf'
    alias -s zip='unzip'
    alias -s bz2='tar -xjvf'
    ivenvd
        12
    ivenvd  
       2013-12-26 23:25:57 +08:00
    tar 本身就能自动识别文件类型啊: tar xf
    leecade
        13
    leecade  
       2013-12-26 23:35:32 +08:00   3
    # Extract archives - use: extract <file>
    # Credits to http://dotfiles.org/~pseup/.bashrc
    function extract () {
    if [ -f $1 ] ; then
    case $1 in
    *.tar.bz2) tar xjf $1 ;;
    *.tar.gz) tar xzf $1 ;;
    *.bz2) bunzip2 $1 ;;
    *.rar) unrar e $1 ;;
    *.gz) gunzip $1 ;;
    *.tar) tar xf $1 ;;
    *.tbz2) tar xjf $1 ;;
    *.tgz) tar xzf $1 ;;
    *.zip) unzip $1 ;;
    *.Z) uncompress $1 ;;
    *.7z) 7z x $1 ;;
    *) echo "'$1' cannot be extracted via extract()" ;;
    esac
    else
    echo "'$1' is not a valid file"
    fi
    }
    loggerhead
        14
    loggerhead  
       2013-12-26 23:47:53 +08:00
    zsh plugin: extract
    shakoon
        15
    shakoon  
       2013-12-26 23:58:00 +08:00
    @leecade 建议用file来判断文件类型。比如war就可能是tar也可能是zip
    Sin
        16
    Sin  
       2013-12-27 00:09:12 +08:00
    7z x
    tinytub
        17
    tinytub  
       2013-12-27 00:11:39 +08:00
    tar -xf 足够了
    LazyZhu
        18
    LazyZhu  
       2013-12-27 00:23:50 +08:00
    @leecade 不全啊, 下面这两个也很常见
    *.tar.lz
    *.tar.xz
    VYSE
        19
    VYSE  
       2013-12-27 01:21:05 +08:00
    一个SHELL,判断MAGIC,然后调相应解压程序即可.
    现成的:dtrx atool
    Jake
        20
    Jake  
       2013-12-27 02:20:50 +08:00   1
    efi
        21
    efi  
       2013-12-27 04:59:16 +08:00
    aunpack专门设计来做这个。不宜自己写脚本造轮子。
    likuku
        22
    likuku  
       2013-12-27 09:57:34 +08:00   1
    @yxjxx 现代的 tar 已经可以直接 tar xvf 就支持自动 gz,bz2,等了。
    oldcai
        23
    oldcai  
    OP
    PRO
       2013-12-27 11:10:54 +08:00
    @Ever 感谢!
    aunpack试了下,很好很强大,本来还在想要是压缩也能按扩展名来压缩就好了,apack也满足了需求;

    @Jake 试了下e,也很好用,支持的格式也很全了,需要ruby环境。
    oldcai
        24
    oldcai  
    OP
    PRO
       2013-12-27 11:26:49 +08:00
    @wenLiangcan
    @9hills
    file-roller得有GUI吧,使用面窄了点。
    @ensonmj
    @tinytub
    @ivenvd
    tar xf一般的带tar的都是可以解的,但是zip什么的就不行了,不够高大全 ^__^
    ltzliwe
        25
    ltzliwe  
       2013-12-27 11:39:05 +08:00
    7z 不错的
    dant
        26
    dant  
       2013-12-27 12:22:09 +08:00 via iPhone
    bsdtar或者7z
    mckelvin
        27
    mckelvin  
       2013-12-28 00:56:04 +08:00
    Fuxiang
        28
    Fuxiang  
       2013-12-29 12:37:59 +08:00
    7zip
    Damon
        29
    Damon  
       2016-12-26 15:58:13 +08:00
    unp
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2881 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 14:08 PVG 22:08 LAX 07:08 JFK 10:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86