如何进行 rm 试运行以查看哪些文件将被删除?

如何进行 rm 试运行以查看哪些文件将被删除?

我想看看rm在linux中执行an时会删除哪些文件。大多数命令似乎都有一个试运行选项来显示此类信息,但我似乎找不到这样的选项rm。这可能吗?

答案1

假设你想运行:

rm -- *.txt

你可以运行:

echo rm -- *.txt

甚至只是:

echo *.txt

查看rm将删除哪些文件,因为它是 shell 扩展*.txt,而不是rm.

唯一对您没有帮助的时候是rm -r

如果你想递归地删除文件和目录,那么你可以使用find而不是rm -r,例如

find . -depth -name "*.txt" -print

然后,如果它满足您的要求,请将其更改-print-delete

find . -depth -name "*.txt" -delete

-delete意味着-depth,我们仍然按照 GNU 手册的建议添加它作为提醒find)。

答案2

你可以说:

rm -i

以交互模式运行它,因此rm会提示您确认是否应删除每个文件。您可以对每个文件回答“否”,看看哪些文件会受到影响。

答案3

您可以使用ls以下命令列出将删除的所有文件rm

ls ../path/*.txt

如果您需要列出以查看将通过递归删除的文件rm,请使用以下-R标志ls

ls -R ../path/*.txt

答案4

只是想迟来地指出一个方便的解决方案约书亚提到在评论中:

yes n | rm -i myFile1 myFile2 myFile3

rm以交互模式运行,它会提示要删除的每个文件的 ay/n 响应,但通过yes n它会自动拒绝每个文件的此提示。输出不是非常漂亮,但是可以通过一些清理来解析。

相关内容