Rm

壓縮並刪除儲存空間有限的原始目錄

  • September 24, 2021

在我的 3 TB 外部硬碟驅動器上,我有一個 2.7 TB 的目錄,其中包含相對較小的文件。我想壓縮這個 2.7 TB 的目錄並將其刪除以僅保留壓縮版本。問題是我沒有足夠的儲存空間來儲存ziprm壓縮目錄。

有沒有辦法解決這個問題,還是我必須獲得更多的儲存空間來進行操作?

您可以嘗試使用--remove-filestar 的參數。假設您要壓縮 FOO 目錄中的所有內容,您將: tar -czf FooCompressed.tar.gz --remove-files FOO

論據解釋:

  • c: 創建 TAR
  • z:使用 GZIP 壓縮,您可以切換到-jfor BZIP2 或-Jfor LZMA(xz)
  • f:輸出到文件而不是 STDOUT
  • 刪除文件:不言自明

如果目錄中最大的文件小於 300GB(可用空間量),最簡單的選擇是單獨壓縮文件而不是創建存檔;就像是

find directory -type f \! -name '*.xz' -print 0 | xargs -0 xz -9

directory將使用壓縮級別 9壓縮所有未壓縮的文件xz。這將使用相應的壓縮版本一次替換一個文件,添加.xz副檔名(因此foo.txt變為foo.txt.xz)。

事實上,即使最大的文件大於可用空間,只要您有足夠的文件小於可用空間,這也可以工作:首先壓縮較小的文件,這將逐漸釋放越來越多的空間,直到(希望)您有足夠的可用空間來處理最大的文件。

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