1

我有这个每天通过 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
4

3 回答 3

3

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

此外,您想使用 -maxdepth 1 在指定目录中实际查找某些内容。

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

于 2009-01-06T11:19:26.527 回答
1

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

于 2009-01-06T11:19:49.303 回答
1
-maxdepth 1
于 2009-01-06T11:23:19.937 回答