在这个问题中:如何删除目录中的所有文件和子目录而不删除 bash 中的目录?询问如何删除文件夹中的所有文件,而不是文件夹本身。
Matt出色的回答包括在 'rm' 命令中使用 -v 标志。
rm -rfv dontDeleteMe && mkdir dontDeleteMe
Run Code Online (Sandbox Code Playgroud)
我留下的命令是上面的那个。当然确实有用,但是“rm”中的 -v 标志和/或通常会减慢通过命令行完成的任务吗?
我有一个包含 .txt 文件(大约 100.000 个)的文件夹,我已经为自己创建、删除和重新创建了几次。有时使用 rm,有时在文件浏览器中,我觉得使用 rm-command 更慢,如上所示。-v 标志与此有关吗?
Reg*_*ser 41
是的,-v 标志会减慢命令的速度。
大多数(如果不是所有)软件(或命令)都会检查是否提供了标志,然后执行一堆与该标志相关的代码。在 -v 标志的情况下,他们可能会执行一堆输出命令(如echo或printf),他们宁愿在没有标志的情况下跳过这些命令。
这意味着处理器有更多的指令周期,从而有更多的执行时间。
如果您不打算阅读/需要消息,最好不要使用 -v 标志。
另一方面,CLI 将/应该比 GUI 更快,假设您不包括键入命令和按键所需的时间Enter。
来自超级用户的这个博客,这张图片很好地解释了缓慢

对于有问题的特定命令,时间命令的结果是
//with -v
real 0m8.753s
user 0m0.816s
sys 0m2.036s
//without -v
real 0m1.282s
user 0m0.124s
sys 0m1.092s
Run Code Online (Sandbox Code Playgroud)
这是通过包含 100000 个空文件的目录完成的
小智 5
为什么不找出自己:利用时间。
$ time rm -rfv dontDeleteMe && mkdir dontDeleteMe
real 0m0.003s
user 0m0.001s
sys 0m0.002s
$ time rm -rf dontDeleteMe && mkdir dontDeleteMe
real 0m0.002s
user 0m0.001s
sys 0m0.001s
Run Code Online (Sandbox Code Playgroud)