只是想清除一些东西:我注意到,如果我tree
在任何其他命令(读取/写入/修改/传输/复制/比较)之前运行该命令,它们实际上似乎执行得更快。
原因可能是,如果您运行 tree 命令,cmd 已经知道特定目录位于何处......
我没有对任何内容进行计时,但也许在较旧、较慢的 PC 上差异会更明显?
不过,也许我只是需要多睡一会儿…… :/
答案1
这并不是说cmd.exe
程序tree
“记住”了文件/目录的位置,而是 Windows(较低级别的磁盘/IO 驱动程序)或物理磁盘本身可能会将文件表信息(或文件本身)放入缓存中,以便在下次访问时速度稍快一些,因此当您运行命令(如 或del
)copy
或甚至在 Media Player 或记事本之类的程序中打开文件时,Windows 和磁盘不必做太多工作即可访问所请求的特定位置。
但这并不适用于所有类型的磁盘,例如 USB/SSD 驱动器或映射网络驱动器,它们的工作原理与旋转磁盘驱动器非常不同;也就是说,运行C:> tree
然后运行notepad "C:\some\file.txt"
可能会看到文件打开速度稍快一些,这是由于磁盘访问的工作方式导致的file.txt
。对阵如果您运行X:> tree
(其中X
是映射的网络驱动器)然后执行notepad "X:\some\file.txt"
,您可能会看到file.txt
以相同的“速度”访问,无论如何(因为它是通过网络)。
因此,更直接地回答你的问题:
运行 tree 命令是否会使后续命令更快?
它可能取决于某些因素(例如磁盘类型)并且结果可能会有所不同,但如果存在缓存机制,则很有可能后续访问文件的速度会更快。
希望能够帮到你。