我正在使用包含各种文件夹的目录结构。其中一些新文件每天都会创建。
我已经创建了一些程序来清理目录,但是我想使用shell脚本来提高效率。
因此我想存储" archiving.properties "每个需要清理的文件夹中的文件。属性文件应包含以下变量
file_pattern="*.xml"
days_to_keep=2
现在我的清理程序应该:
所以我的问题是如何以最有效的方式做到这一点?
find . -type f -name "archiving.properties" -print
find . -type f -name "<file_pattern>" -mtime +<days_to_keep> -delete
目前我在一个文件夹中尝试以下操作。它正确打印出命令,但是没有执行。
#!/bin/bash
. archiving.properties
find . -type f -name "*.xml" -mtime +1 -exec rm -rf {} \;
echo " find . -type f -name \"${file_pattern}\" -mtime +${days_to_keep} -exec rm -rf {} \;"
Result is: find . -type f -name "*.xml" -mtime +1 -exec rm -rf {} \;
提前感谢您的帮助。
答案 0 :(得分:0)
我得到了最终结果
echo "start deleting files in " $(pwd) " ... "
#filename of the properties
properties="clean_up.properties"
#find all properties files
for prop in $(find . -type f -name $properties);do
#init variables
file_pattern="*._html"
days_to_keep=14
#load the variables from the properties file
. "$prop"
#define the folder of the properties file
folder=${prop%?$properties}
#remove all files matching the parameters in the folder where the properties were found
echo ">>> find $folder -type f -name \"${file_pattern}\" -mtime +${days_to_keep} -exec rm -f {} \;"
find $folder -type f -name "${file_pattern}" -mtime +${days_to_keep} -exec rm -f {} \;
done
echo "... done"