Linux
為什麼在 Ubuntu 中刪除文件很慢?
我在 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 的使用壽命。非常不建議禁用它。