Tar

兩個 tar 命令 -cf 和 -Jchf 之間的區別

  • February 5, 2022

我有一個在兩個地方執行的 python 腳本,兩個不同但相似的命令:

os.system("tar cf - -C %s . 2>/dev/null 3>/dev/null | 7za a -p%s -si %s 1>/dev/null 2>/dev/null 3>/dev/null" % (cf, self.config.get(jn, "archpass"), filename))


os.system("tar -Jchf - -C %s . 2>/dev/null 3>/dev/null | 7za a -p%s -si %s 1>/dev/null 2>/dev/null 3>/dev/null" % (cf, self.config.get(jn, "archpass"), filename))

此腳本用於備份 Ubuntu 伺服器上的網站。所以大部分文件都是html/php/js/jpg。我需要更多地理解這個命令,以便了解是否有改進的地方。

問題1)tar cf :和之間有什麼區別tar -Jchf。不幸tar --help的是並沒有幫助我理解附加-Jf參數。

問題 2) tar 是否也在歸檔?將所有內容髮送到的目的可能是什麼7za?它是在做雙重歸檔嗎?

命令的實際區別在於Jh開關,此處描述(來自man tar):

-h, --dereference
             Follow symlinks; archive and dump the files they point to.
-J, --xz
             Filter the archive through xz(1).

因此,您強制使用符號連結壓縮存檔xz並遵循符號連結,而不是歸檔連結本身。

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