在这里,我尝试删除早于 xdays 的旧文件夹。 file_path.txt 中提到了这些磁盘的路径
我在这里需要的是搜索上述文件中可用的每个路径并删除那些可用的文件。
以下是我到目前为止所尝试过的,但没有成功。
dir_to_check='file_path.txt'
CY=`date +"%Y"`
last_month=`date '+%B' --date '1 month ago'`
lmdate=`date '+%d' --date='32 days ago'`
cmd="$dir_to_check/$CY/$last_month/$lmdate"
cat file_path.txt | while read output
do
find $cmd -type d -ctime +30
if [ $? -eq 0 ]; then
echo "Directory exists and can be deleted"
echo "rm dir"
else
echo "FAIL to delete directory as its not exists"
fi
done
答案1
算法中可能出现的错误:
dir_to_check='file_path.txt'
CY=`date +"%Y"`
last_month=`date '+%B' --date '1 month ago'`
lmdate=`date '+%d' --date='32 days ago'`
cmd="/$CY/$last_month/$lmdate"
cat $dir_to_check | while read output
do
find ${output}${cmd} -type d -ctime +30
if [ $? -eq 0 ]; then
echo "Directory exists and can be deleted"
echo "rm dir"
else
echo "FAIL to delete directory as its not exists"
fi
done
考虑使用实用程序-exec
中的选项find
而不是返回值$?
。