通常,要在 Linux 終端刪除一個檔案,我們使用 rm 命令(刪除檔案)、 shred 命令(安全刪除檔案)、 wipe 命令(安全擦除檔案)或者 secure-deletion 工具包(一個安全檔案刪除工具集合)。
我們可以使用上述任意的工具來處理相對較小的檔案。如果我們想要刪除超大的檔案/資料夾,比如大概 100-200GB,在刪除檔案(I/O 排程)所花費的時間以及 RAM 佔用量方面,就沒有你想的那麼簡單。
在本教程中,我們會解釋如何在 Linux 中有效率並可靠地刪除大檔案/資料夾。
我們的主要目標是使用一種不會在刪除大檔案時拖慢系統的技術,合理地佔用 I/O 。我們可以用 ionice 命令實現這個目標。
在 Linux 中使用 ionice 命令刪除超大(200GB)檔案
ionice 是一個可以對另一個程式設定或獲取 I/O 排程級別和優先順序的有用程式。如果沒有給出引數或者只有 -p 引數,那麼 ionice 將會查詢該程式的當前的 I/O 排程級別以及優先順序。
如果我們給出命令名稱,如 rm 命令,它將使用給定的引數執行此命令。要獲取或設定排程引數,請指定 [程式的 PID],如下:
# ionice -p PID
要指定名字或者排程的數字,使用(0 表示無、 1 表示實時、 2 表示盡力、 3 表示空閒)下面的命令。
以下命令表示 rm 會屬於空閒 I/O 級別,並且只在其他程式不使用的時候使用 I/O:
—- Deleting Huge Files in Linux —–
# ionice -c 3 rm /var/logs/syslog
# ionice -c 3 rm -rf /var/log/apache
如果系統中沒有很多空閒時間,那麼我們希望使用盡力排程級別,並且使用低優先順序:
# ionice -c 2 -n 6 rm /var/logs/syslog
# ionice -c 2 -n 6 rm -rf /var/log/apache
注意:要使用安全的方法刪除大檔案,我們可以使用先前提到的 shred 、 wipe 以及 secure-deletion 工具包中的不同工具,而不是 rm 命令。