我觉得我应该确定的一点:如果我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国旗...