我觉得我应该确定的一点:如果我ls <something>
将rm <something>
删除ls
显示的完全相同的文件?在什么情况下rm
可以删除ls
未显示的文件?(这是在18.04 bash)
编辑:谢谢所有回答的人。我认为完整答案是所有答案的结合,因此我接受了投票最多的答案作为“答案”。
一路上我学到的意外的事情:
ls
在处理参数时并不像您想象的那样简单- 在Ubuntu的简单安装过程中,.bashrc别名
ls
- 不要以破折号开头的文件命名,因为它们看起来像命令参数,而命名一个-r则要求它!
find -delete
比rm
呢?您说“这就是原因”,但是我完全不知道这是什么意思。还要注意,您的find
调用将递归删除当前目录中的所有文件,在该目录中,rm
将仅删除直接目录中的文件。也是-name *
无人操作。总而言之,我对您的建议感到非常困惑……
find
是因为您可以运行它,查看所有文件,然后使用运行相同的命令-delete
。既然您已经看到了的结果find
,则删除的内容应该没有歧义(我实际上想以答案的形式听到有关此问题的更多详细信息)
-delete
” -来运行同一命令 -但是,这比running更好ls <filespec>
,其次rm <filespec>
(OP已经知道该怎么做)呢?
find ... -print
以确认要删除的文件,然后运行,则find ... -delete
仍将删除在两个命令之间创建的文件。如果同时使用-print
和-delete
,则不会得到确认,只会显示有关已删除内容的事后报告(您也可以使用rm -v
)。
rm
没有--dry-run
国旗...