/usr/bin/find: 参数列表太长,在尝试删除164850个文件时出现此问题。

9

这是脚本

#!/bin/bash  
find /mnt/blah/DB/* -mtime +65 | xargs rm -Rf "{}" \; 

我也尝试了以下两种方法,但两者都无法正常工作且会出现标题中的错误。
find /mnt/blah/DB/* -mtime +35 -exec rm {} \;

非常感谢您的帮助。

1个回答

36

去掉*,改成:

find /mnt/blah/DB -mtime +35 -type f -exec rm {} \;

只列出您想要操作的目录树的顶级目录即可。


William会删除目录下的文件还是直接删除整个目录? - cmac68
2
这将仅删除文件。如果您想要删除一个目录,您必须使用rmdirrm -r - William Pursell
除了Williams的答案之外,由于您使用了“-type f”,因此您只会将文件而不是目录传递给exec rm。 - Vagnerr
2
我的上一个评论不准确;如果你想要删除目录,你可以使用 -delete 而不是 -exec ... - William Pursell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接