因此,我希望将文件压缩到给定目录中,例如/ etc / input并在/ etc / output中输出文件,它应该类似于:
$ ls /etc/input
file1
file2
file3
$ script.sh
$ ls /etc/output
file1.zip
file2.zip
file3.zip
$ ls /etc/input
目前,我写的内容如下:
find . -type f -print | while read fname ; do
mkdir -p "../output/`dirname \"$fname\"`"
gzip -c "$fname" > "../output/$fname.gz"
done
您可以使用find
,但我认为使用纯Bash会更简单。
INPUT=/etc/input
OUTPUT=/etc/output
mkdir -p "$OUTPUT"
for file in "$INPUT"/* ; do
gzip -c "$file" > "${OUTPUT}/${file}.gz"
done
更改INPUT
和OUTPUT
以匹配您想要的内容。