我想看看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
它会自动拒绝每个文件的此提示。输出不是非常漂亮,但是可以通过一些清理来解析。