Rm
壓縮並刪除儲存空間有限的原始目錄
在我的 3 TB 外部硬碟驅動器上,我有一個 2.7 TB 的目錄,其中包含相對較小的文件。我想壓縮這個 2.7 TB 的目錄並將其刪除以僅保留壓縮版本。問題是我沒有足夠的儲存空間來儲存
zip
非rm
壓縮目錄。有沒有辦法解決這個問題,還是我必須獲得更多的儲存空間來進行操作?
您可以嘗試使用
--remove-files
tar 的參數。假設您要壓縮 FOO 目錄中的所有內容,您將:tar -czf FooCompressed.tar.gz --remove-files FOO
論據解釋:
- c: 創建 TAR
- z:使用 GZIP 壓縮,您可以切換到
-j
for BZIP2 或-J
for 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
)。事實上,即使最大的文件大於可用空間,只要您有足夠的文件小於可用空間,這也可以工作:首先壓縮較小的文件,這將逐漸釋放越來越多的空間,直到(希望)您有足夠的可用空間來處理最大的文件。