Linux

為什麼在 Ubuntu 中刪除文件很慢?

  • June 11, 2021

我在 Linux 上的 stackoveflow 文章上讀到,當我們刪除一個文件時,它實際上並沒有被刪除,只是從 inode 表中刪除了指向該文件的連結。如果是這樣,那為什麼不刪除一個恆定時間的操作呢?

我還嘗試了一個實驗:我創建了一個包含 1500 張圖像的文件夾,並為這些圖像創建了一個 tar 對象。目錄和 tar 文件的大小相同。刪除tar對象的時間和1500張圖片的目錄如下

刪除 tar 文件time rm test.tar


real    0m0.024s
user    0m0.001s
sys     0m0.024s

刪除目錄:time rm -r test


real    0m0.219s
user    0m0.024s
sys     0m0.191s

據我了解,這種時間差異是因為

取消連結 1 個文件與取消連結 1500 個文件。但是 tar 對象刪除不應該快 1500 倍嗎?

因為它不是簡單的“標記單個inode 已刪除”操作:https ://www.slashroot.in/how-does-file-deletion-work-linux

由於使用範圍,至少在 ext4 文件刪除上比在 ext2/ext3 分區上快很多。

如果使用“丟棄”選項,SSD 文件刪除可能比必要的要慢,該選項告訴您的 SSD 物理丟棄屬於文件的所有塊以延長 SSD 的使用壽命。非常建議禁用它。

引用自:https://unix.stackexchange.com/questions/653813