Answers:
$ find /path/to/folder -type f -delete
-delete
。这样也可以避免包含引号或换行符的文件出现问题(尽管您可以使用GNU find -print0
和GNU xarg的-0
选项来解决此问题)。
xargs
同时find
具有-exec command {} +
语法。
您做对了所有事情。正是'*'给您带来了问题(shell将其扩展为文件列表而不是find
)。正确的语法可能是:
cd <your_directory>; find . -type f | xargs rm -f
find <your_directory> -type f | xargs rm -f
(后者的效率较低,因为它将更长的名称传递给xargs
,但是您几乎不会注意到:-))
另外,您可以这样逃避'*'(但是在这种情况下,它也会尝试也删除“。”和“ ..”;这不是大问题-您只会得到一点警告:-)):
find . -name '*' | xargs rm -f
find . -name "*" | xargs rm -f
find . -name \* | xargs rm -f
如果您的文件名包含空格,请使用以下命令:
find . -type f -print0 | xargs -0 rm -f