使用Bash Loop [保持中]创建邮政编码

问题描述 投票:-1回答:2

我在使用bash创建多个zip时遇到问题。我试图制作代码,但失败了。我只想使用bash中的循环创建多个zip,像这样

Folder 1000
File 1
File 2
to be 1000.zip


Folder 999
File 1
File 2
to be 999.zip

loop until 1.zip

它是如何工作的?我在bash shell上是新的

linux bash zip rar
2个回答
-1
投票

您可以使用bash循环在每个文件夹上执行任意命令,例如:

pax> for folder in {15..1} ; do echo zip add ${folder}.zip ${folder} ; done
zip add 15.zip 15
zip add 14.zip 14
zip add 13.zip 13
zip add 12.zip 12
zip add 11.zip 11
zip add 10.zip 10
zip add 9.zip 9
zip add 8.zip 8
zip add 7.zip 7
zip add 6.zip 6
zip add 5.zip 5
zip add 4.zip 4
zip add 3.zip 3
zip add 2.zip 2
zip add 1.zip 1

显然,我的命令只是回显might所做的压缩文件夹,您只需要使用actual压缩命令。


如果可能不是所有目录都存在,则可以选择:

for folder in {1000..1} ; do
    rm -rf ${folder}.zip
    [[ -d ${folder} ]] && echo zip add ${folder}.zip ${folder}
done

这总是删除当前的Zip文件,然后仅在目录实际存在时创建一个新的Zip文件。


-1
投票
# for comment in bash script

$ which bash;
-> /bin/bash
# put this output in the first line

# vim is the text editor, choose the one you like.

$ vim lsDirAndCompress.sh;
#!/bin/bash

# debug script, uncomment it
# set -x

# ls = long list; grep ... select directories; awk ... get directories name;
dir=$(ls -l | grep ^d | awk -F" " '{print $NF}');

# to debug
# echo $dir;

# create directory
mkdir compress;

# for loop for each directory
for i in $(echo $dir); do
        # c create ; z gzip ; f file ;
        # directory compress/name ; $i directories to compress ;
        tar czf compress/$i.tar.gz $i;
        # for compression with bzip2
        # tar cjf compress/$i.tar.bz2 $i;
done;
© www.soinside.com 2019 - 2024. All rights reserved.