我有这个命令,我每天都通过cron运行:

find /home/get/public_html/videos -daystart -maxdepth 0 
-mtime +1 -type f -name "*.flv" |xargs rm -f

问题是它不会删除1天或更长时间目录中的.flv文件。

如何更正上述命令?

编辑:保罗 - 命令“ls -l / home / get / public_html / videos”导致2000多个文件,但这里有2个应删除:

-rw-r--r--  1 get get   3501188 Jan  4 15:24 f486cf0a2b6bb40e4c50c991785084131231104229.flv
-rw-r--r--  1 get get  10657314 Jan  4 17:51 f5f1490ddaa11a663686f9d06fb37d981231112941.flv
有帮助吗?

解决方案

最好在find中使用-print0,在xargs中使用-0,以防一个文件的名称不常见。

另外,您希望使用-maxdepth 1来实际查找指定目录中的内容。

-maxdepth 0表示它只能在命令行中列出的目录中找到,它不会检查这些目录的内容。

其他提示

你的意思是,如果你有一个目录 / home / get / public_html / videos / foo ,它不会删除其中的文件?那是因为你有 -maxdepth 0 参数集,这会阻止 find 下降到子目录。

-maxdepth 1
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top