Linux

如何遞歸地 bzip2 所有未壓縮的文件?

  • December 11, 2018

如何遞歸地 bzip2 所有不.bz2以 Linux 副檔名結尾的文件?

找到是你的朋友。我認為以下應該這樣做:

find <target_dir> -not -name \*.bz2 -exec bzip2 \{\} \;

即,如果您要 bzip 的文件所在的目錄是 /var/log/blah,它將是:

find /var/log/blah -not -name \*.bz2 -exec bzip2 \{\} \;

在我的腦海中(對不起,沒有方便的外殼來測試引用等):

for _t in `find . -print |grep -v -E "\.bz$"`; do bzip2 -9 $_t && echo OK $_t || echo FAIL $_t; done

這使用 find 查找所有文件,使用 grep 刪除副檔名為 .bz2 的文件,然後一次將一個文件輸入 bzip2。不過,我希望有些引用是錯誤的——我會先分別測試反引號中的位。

祝你好運!不過,您可能想改用 xz - 它通常壓縮得更好 - 甚至 tar 一切都用 bzip2 或 xz 代替。

引用自:https://serverfault.com/questions/170505