为什么从命令行删除文件夹比手动删除需要更长的时间?

Bil*_*adj 9 command-line delete

我注意到每当我想使用命令行 ( sudo rm -r folder_name)删除包含大量数据的文件夹时,终端都会挂起以终止操作。但同时,当我手动删除类似大小的文件夹时,删除会立即执行,无需等待。

关于为什么会发生这种差异的任何解释

Ter*_*nce 15

当您从 GUI 中删除时,您只是将文件移动到垃圾箱。这会立即更新指向文件的指针,说它们现在位于另一个文件夹的垃圾箱中。

当您像这样从命令行删除时,它会一一删除文件,直到它们从文件夹中全部消失,然后删除文件夹本身。这绕过了垃圾箱。这也需要更长的时间。

如果您在 GUI 中执行Shift+Del这将绕过垃圾箱并需要更长的时间才能删除。

希望这可以帮助!

  • `这会更新指向文件的指针`。是的,或者更准确地说,它更新目录的 inode 列表,这些 inode 实际上是指向我们称为文件的磁盘空间块的指针。+1。此外,如果只有最少数量的子目录并且大多数文件都在那里,那可能会更快,因为我认为只需要将子目录的 inode 移动到另一个目录的列表中。删除是对整个目录的递归遍历 - 即打开系统调用、取消链接系统调用等,当然时间更长。 (3认同)
  • 通过命令行将文件移动到垃圾箱:[如何通过终端打开“垃圾箱”?](https://askubuntu.com/q/327943/301745) (2认同)