从目录中压缩文件

时间:2014-02-27 19:36:50

标签: linux shell zip

我需要在目录中找到文件,并以相同的名称压缩它们。

我正在尝试以下

find . -name "ABC_*.txt" -mtime +30 -exec sh -c zip '{}' '{}' \;"

但是出了点问题。

基本上如果find命令找到3个文件说:

./ABC_1.txt
./ABC_2.txt
./ABC_3.txt

我需要3个zip文件:

./ABC_1.txt.zip
./ABC_2.txt.zip
./ABC_3.txt.zip
提前谢谢。

2 个答案:

答案 0 :(得分:0)

试试这个:

find . -name "ABC_*.txt" -mtime +30 -exec zip "{}.zip" "{}" \;

您可能会覆盖原始文件,并需要为您的ZIP提供扩展程序。

答案 1 :(得分:0)

您可以使用execdir选项:

find . -name "ABC_*.txt" -mtime +30 -execdir sh -c 'zip "$1.zip" "$1"' - '{}' \;