获取通过“find -delete”删除的文件列表

获取通过“find -delete”删除的文件列表

此命令列出与提供的名称匹配的所有文件:

find . -iname .DS_Store

但是当我使用-delete参数时,我看不到已删除文件的列表。他们只是被删除了。

| xarg ..最好不要使用or使其变得复杂-exec rm {},是否有任何神奇的标志可以在使用时查看已删除的文件find . -iname .DS_Store -delete

PS:我知道我可以在没有删除标志的情况下运行该命令,但我正在寻找类似的东西print0(尽管打印起来很难看)来完成工作。

答案1

-print只需在命令末尾添加:

find . -name .DS_Store -delete -print

这将输出找到的文件的路径名。

如果这是在 macOS 系统(或任何 BSD 系统)上,使用find那里的默认实现,则-delete谓词总是回报真的,这意味着该规则-print也将始终生效。这意味着上面的命令将打印所有找到的路径名,无论它们是否被成功删除。-deleteGNU 中的谓词将find返回错误的如果该名称无法删除。

如果您使用的是 macOS 或 BSD 系统,并且这对您很重要,请使用

find . ! -type d -name .DS_Store -exec rm {} \; -print

反而。在这里,rm如果未能删除给定名称,则将返回非零退出状态,这反过来意味着-print该路径名不会生效。我还添加了! -type d因为rm只删除非目录(不使用时rm -r)。

相关内容