7z

如何使用 7z 通過管道進行壓縮?

  • May 20, 2021

我正在使用它來安全地創建備份(? - 它真的安全嗎?用一個好的密碼?):

# ENCRYPT
ORIGDIR="DIRECTORYNAMEHERE"; tar cvf - "${ORIGDIR}/" 2>/dev/null | gzip -9 - 2>/dev/null | openssl aes-256-cbc -salt -out "${ORIGDIR}.tar.gz.aes"

# DECRYPT
openssl aes-256-cbc -d -salt -in "ENCDIRECTORYNAMEHERE" | tar -xz -f -

**問:**但是如何使用具有最大壓縮率的 7z 來做到這一點?

除了唯一的 OUTPUT 文件之外創建臨時文件並不好,因為如果我需要在 180 GByte FS 上壓縮 ~100 GByte 大小的文件/目錄,我將沒有足夠的可用空間(例如:壓縮文件需要 ~60千兆字節)。

您是否有理由要7z專門使用,或者您只是想要比 更好的壓縮gzip

該實用程序使用與(LZMA)xz相同的壓縮算法,並允許與.7z``gzip

tar cvf ... | xz -9 | openssl ...

這在 7z 的手冊頁中有介紹:

-si    Read data from StdIn (eg: tar cf - directory | 7z a -si directory.tar.7z)

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