我需要在目录中找到文件,并以相同的名称压缩它们。
我正在尝试以下
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
提前谢谢。
答案 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"' - '{}' \;