Emadpres Asked: 2019-03-01 02:53:30 +0800 CST2019-03-01 02:53:30 +0800 CST 2019-03-01 02:53:30 +0800 CST 获取由`find -delete`删除的文件列表[重复] 772 此命令列出与提供的名称匹配的所有文件: find . -iname .DS_Store 但是当我使用-delete参数时,我看不到已删除文件的列表。他们只是被删除。 | xarg ..最好不要用or使它变得复杂,使用-exec rm {}时是否有任何魔术标志可以查看已删除的文件find . -iname .DS_Store -delete? PS:我知道我之前可以在没有删除标志的情况下运行命令,但我正在寻找类似的东西print0(虽然打印出来很丑)来完成工作。 shell find 1 个回答 Voted Best Answer Kusalananda 2019-03-01T02:58:01+08:002019-03-01T02:58:01+08:00 只需添加-print到命令的末尾: find . -name .DS_Store -delete -print 这将输出找到的文件的路径名。 如果这是在 macOS 系统(或任何 BSD 系统上),使用那里的默认实现find,则-delete谓词始终返回true,这意味着也-print将始终生效。这意味着上面的命令将打印所有找到的路径名,无论它们是否被成功删除。如果无法删除名称,则 GNU 中的-delete谓词find将返回false 。 如果您使用的是 macOS 或 BSD 系统,并且这对您很重要,请使用 find . ! -type d -name .DS_Store -exec rm {} \; -print 反而。在这里,rm如果删除给定名称失败,则将返回非零退出状态,这反过来意味着该-print路径名不会生效。我还添加了! -type d因为rm只删除非目录(不使用时rm -r)。
只需添加
-print
到命令的末尾:这将输出找到的文件的路径名。
如果这是在 macOS 系统(或任何 BSD 系统上),使用那里的默认实现
find
,则-delete
谓词始终返回true,这意味着也-print
将始终生效。这意味着上面的命令将打印所有找到的路径名,无论它们是否被成功删除。如果无法删除名称,则 GNU 中的-delete
谓词find
将返回false 。如果您使用的是 macOS 或 BSD 系统,并且这对您很重要,请使用
反而。在这里,
rm
如果删除给定名称失败,则将返回非零退出状态,这反过来意味着该-print
路径名不会生效。我还添加了! -type d
因为rm
只删除非目录(不使用时rm -r
)。