Linux

如何在不離開原始文件夾且不刪除原始文件夾的情況下壓縮文件夾

  • July 3, 2016

SQL目錄下我們只有tmp文件夾(tmp文件夾使用量59G)

是否可以在不離開原始 tmp 文件夾的情況下壓縮 tmp 文件夾?,因此壓縮將在原始文件夾上起作用

文件夾使用:

root@serverE1:/var/backup/SQL #  du -sh *

59G     tmp

所以壓縮後我只會看到這個:(8G只是例子)

8G   tmp.tar.gz

有兩個問題需要解決:

  • 如何在不影響輸出的情況下刪除文件,以及
  • 在創建輸出時放置輸出的位置。

如果您碰巧在 中沒有任何點文件/var/backup/SQL,那很簡單:

  • 只需創建以“。”開頭的輸出命名,
  • --remove-files使用該選項添加到 tar 文件中,並且
  • 將輸出重命名為tmp.tar.gz完成時。

就像是

cd /var/backup/SQL
tar cfz .tmp.tar.gz --remove-files * && mv .tmp.tar.gz tmp.tar.gz

如果您確實有點文件,那麼您可以建構要 tar 的文件列表,然後使用該列表建構 tar 文件。使用 Linux,您可以使用-T( --files-from) 選項來閱讀此列表,例如,

cd /var/backup/SQL
find . -type f >/tmp/list
tar czf tmp.tar.gz --remove-files --files-from /tmp/list

(有人肯定會建議程序替換而不是臨時文件,但這具有大小有限的缺點,這可能是一個問題)。

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