无法使用脚本删除文件

无法使用脚本删除文件

经过长时间的搜索和反复试验,我创建了一个脚本

#!/bin/bash

find /home/SHARE/temp/* -mtime +10 -exec rm {} \;

创建后,它会被执行并删除所有超过 10 天的文件,但保留这些文件所在的文件夹。

我把它写在 cron 中,现在我发现它什么也没做。

也许我在 cron 中写错了,但是当我尝试手动执行它时,我得到了:

rm query: remove write-protected regular file

并要求确认删除,然后说

Permission denied

如何做到不仅删除文件而且删除文件夹?

如何自动运行具有权限sudo的脚本?

感谢您的帮助

答案1

要删除下面的空目录但不包括 /home/SHARE/temp,请使用

find /home/SHARE/temp -depth -mindepth 1 -type d -empty -exec rmdir {} \;

要仅删除原始命令中的文件,请-type f包括

find /home/SHARE/temp -type f -mtime +10 -exec rm {} \;

如果使用 cron 中的这些命令替换\;\\;

答案2

我相信您需要通过修改以下行来强制删除文件,因为该文件是只读的:

find /home/SHARE/temp/* -mtime +10 -exec rm {} \;

find /home/SHARE/temp/* -mtime +10 -exec "rm -f" {} \;

除此之外,您还可以使用 root 用户执行脚本。

相关内容