如果测试 - 检查超过 7 天的文件 - Unix
If test - checking files older than 7 days - Unix
我为我的 Synology NAS 创建了一个脚本,它检查视频文件夹以查看是否有超过 7 天的文件。但是它没有删除,我收到的错误消息是
sh: of: unknown operand
这是我的脚本:
echo "------- SCRIPT START -------"
sleep 2
if test 'find /volume1/Media/ -mtime +7'
then
sleep 2
echo "Deleting files"
-exec rm -r {} \;
sleep 2
echo "Deleted files"
else
echo "There are no files to delete"
fi
您绝对不需要 -exec 并且 {} 正在替换您不需要的内容;并且您可能应该 cd 到您实际要删除文件的目录,否则看起来您将要检查是否有文件,然后删除 pwd 中的所有内容。这可能并不理想,具体取决于此脚本所在的位置 运行。
因此,只需将一个测试文件放入该文件夹并执行此操作,然后更改 rm -r * 以仅删除您要删除的一个文件,具体取决于您实际尝试执行的操作。
echo "------- SCRIPT START -------"
sleep 2
echo "Checking Game of Thrones"
sleep 2
if test 'find /volume1/Media/ -mtime +7'
then
sleep 2
echo "Deleting files"
cd /volume1/Media
rm -r *
sleep 2
echo "Deleted files"
cd
else
echo "There are no files to delete"
fi
仅删除超过 7 天的文件的简短脚本:
dir="/volume1/Media"
days=7
echo -n "removing files in $dir that are older than $days days: "
find "$dir" -mtime +$days -type f -exec echo {} \; -exec rm {} \; | wc -l
您可以将代码重写为
find /volume1/Media/ -mtime +7 -type f -exec echo rm -f {} \;
echo 用于测试,如果您喜欢生成的 rm 命令,请将其删除。
当你也想删除目录时,可以改成
find /volume1/Media/ -mtime +7 -exec echo rm -rf {} \;
我为我的 Synology NAS 创建了一个脚本,它检查视频文件夹以查看是否有超过 7 天的文件。但是它没有删除,我收到的错误消息是
sh: of: unknown operand
这是我的脚本:
echo "------- SCRIPT START -------"
sleep 2
if test 'find /volume1/Media/ -mtime +7'
then
sleep 2
echo "Deleting files"
-exec rm -r {} \;
sleep 2
echo "Deleted files"
else
echo "There are no files to delete"
fi
您绝对不需要 -exec 并且 {} 正在替换您不需要的内容;并且您可能应该 cd 到您实际要删除文件的目录,否则看起来您将要检查是否有文件,然后删除 pwd 中的所有内容。这可能并不理想,具体取决于此脚本所在的位置 运行。
因此,只需将一个测试文件放入该文件夹并执行此操作,然后更改 rm -r * 以仅删除您要删除的一个文件,具体取决于您实际尝试执行的操作。
echo "------- SCRIPT START -------"
sleep 2
echo "Checking Game of Thrones"
sleep 2
if test 'find /volume1/Media/ -mtime +7'
then
sleep 2
echo "Deleting files"
cd /volume1/Media
rm -r *
sleep 2
echo "Deleted files"
cd
else
echo "There are no files to delete"
fi
仅删除超过 7 天的文件的简短脚本:
dir="/volume1/Media"
days=7
echo -n "removing files in $dir that are older than $days days: "
find "$dir" -mtime +$days -type f -exec echo {} \; -exec rm {} \; | wc -l
您可以将代码重写为
find /volume1/Media/ -mtime +7 -type f -exec echo rm -f {} \;
echo 用于测试,如果您喜欢生成的 rm 命令,请将其删除。
当你也想删除目录时,可以改成
find /volume1/Media/ -mtime +7 -exec echo rm -rf {} \;