Air_Mu
V2EX  ›  问与答

如何把一堆文件夹分别压缩成一个个压缩文件?

  •  
  •   Air_Mu · Dec 13, 2012 · 8008 views
    This topic created in 4927 days ago, the information mentioned may be changed or developed.
    大家都知道在WIN下选定多个RAR文件右键后会出现“解压每个压缩文件到单独的文件夹。”现在刚好需要反过来操作,就是把每个文件夹压缩成单独的压缩文件。谁知道该怎么弄?

    用WINRAR或者7Z都行,只要能做到。
    8 replies    2021-03-05 13:22:52 +08:00
    clowwindy
        1
    clowwindy  
       Dec 13, 2012   ❤️ 2
    7zip 支持命令行调用:

    7z a foo.7z foo

    再写个 Python 脚本循环调用,就很容易了吧。
    funagi
        2
    funagi  
       Dec 13, 2012
    Zip2Dir可批量打包子目录
    http://www.onlinedown.net/soft/22577.htm
    123123
        3
    123123  
       Dec 13, 2012   ❤️ 1
    WinRAR在压缩时,在文件选项卡里把「把每个文件放到单独的压缩文件中」勾上就ok了
    skydiver
        4
    skydiver  
       Dec 13, 2012
    @123123 ls正解
    Air_Mu
        5
    Air_Mu  
    OP
       Dec 13, 2012
    @123123
    @skydiver

    试了下确实是的 之前也看到过这个选项,但是看字面意思还以为会把文件夹里的子文件每个都单独压缩。就没试
    kong12
        6
    kong12  
       May 29, 2016   ❤️ 1
    1 、如果是用 winrar ,在文件选项卡里把「把每个文件放到单独的压缩文件中」勾上就 ok 了。

    2 、如果是用 7-zip ,要建立一个 bat 文件,里面输入以下内容
    for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\"
    这里面根据自己的 7-zip 的安装目录,和要压缩的压缩包类型,相应该代码。
    然后把该 batW 文件和你需要打包的那些文件处于同一目录,且该目录下除了我们要压缩的那些文件夹和批处理文件外,没有其他多余的文件或文件夹。双击运行该 bat 即可。
    请参考本文 http://jingyan.baidu.com/article/bea41d43412d8bb4c51be62d.html
    feng0vx
        7
    feng0vx  
       Mar 5, 2021
    win 下用 7zip 楼上正解

    再发一个 linux 下 zip 压缩的脚本
    #!/bin/bash
    FILE=`ls -l |grep "^d" |awk '{print $9}'`
    echo $FILE
    for i in $FILE
    do
    ## 循环遍历静默压缩
    zip -rq "$i".zip "$i"
    ## 压缩完成显示一个
    echo $i.zip
    done

    有一个 bug,文件夹中不能有空格,高手给修复下,哈哈~~~
    feng0vx
        8
    feng0vx  
       Mar 5, 2021
    @feng0vx 自己搞定了

    #!/bin/bash
    c=0
    for file in *
    do
    if [ -d "$file" ] ; then
    dirlist[$c]="$file"
    echo "$file"
    ((c++))
    fi
    done
    echo '----------------'

    for i in "${dirlist[@]}"
    do
    zip -rq "$i".zip "$i"
    echo $i.zip
    done
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5872 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    ♥ Do have faith in what you're doing.