使用 -v (详细)会减慢命令速度吗?

使用 -v (详细)会减慢命令速度吗?

在这个问题中:如何在不删除 bash 中的目录的情况下删除目录中的所有文件和子目录?询问如何删除文件夹中的所有文件,而不是文件夹本身。

马特s 出色的答案包括在‘rm’命令中使用 -v 标志。

rm -rfv dontDeleteMe && mkdir dontDeleteMe

我留下的命令是上面的命令。确实很有用,但是“rm”中的 -v 标志是否会减慢通过命令行执行的任务的速度?

我有一个包含 .txt 文件(大约 100,000 个)的文件夹,我已经创建、删除并重新创建了好几次。有时使用 rm,有时在文件浏览器中,我感觉使用 rm 命令的速度甚至更慢,如上所示。-v 标志与此有什么关系吗?

答案1

是的,-v 标志会减慢命令的速度。

大多数(如果不是全部)软件(或命令)都会检查是否提供了标志,然后执行一堆与标志相关的代码。如果是 -v 标志,它们可能会执行一堆输出命令(如echoprintf),如果没有标志,它们宁愿跳过这些命令。

这意味着处理器拥有更多的指令周期,从而拥有更多的执行时间。

如果您不打算阅读/不需要这些消息,最好不要使用 -v 标志。

另一方面,假设不包括输入命令和按下按键所需的时间,CLI 会/应该比 GUI 更快Enter

超级用户的这个博客这张图片很好地解释了速度缓慢的原因

在此处输入图片描述

对于所讨论的特定命令,time 命令的结果是

//with -v
real    0m8.753s
user    0m0.816s
sys     0m2.036s

//without -v
real    0m1.282s
user    0m0.124s
sys     0m1.092s

这是对包含 100000 个空文件的目录进行的

答案2

为什么不自己去发现呢:利用时间。

$ 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

相关内容