0

我是 shell 脚本的新手。我有一个要求,找出或列出 .bak(它应该只是 .bak,在列出时不应选择其他 .bak.tar.gz 文件)文件,然后压缩它们并创建 .tar .gz 文件。

4

2 回答 2

0

希望这些代码有所帮助。*.bak将匹配所有.bak文件。

tar -czf example.tar.gz *.bak
于 2013-01-23T08:28:41.593 回答
0

你可能需要这个:

#uncomment 1 of the next 2 lines : the first DOES the cmd, the 2nd only echo it

#thecmd="tar"
thecmd="echo tar"

export thecmd

for bakfile in ./*.bak ; do
   [ -f "${bakfile}" ] && ${thecmd} -czf "${bakfile}.tar.gz" "${bakfile}" 
done

这还会在将文件压缩为 file.tar.gz 之前测试文件是否是常规文件(而不是目录、管道或块设备)(注意:尽量避免在变量名中使用保留字和变量名。有很多)

于 2013-01-23T12:07:51.780 回答