2つのtarコマンド-cfと-Jchfの違い

2つのtarコマンド-cfと-Jchfの違い

2つの異なるが同様のコマンドである2つの場所で実行される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サーバーからWebサイトをバックアップするために使用されます。したがって、ほとんどのファイルはhtml/php/js/jpgです。改善する必要があるかどうかを確認するには、このコマンドの詳細を知る必要があります。

質問1)tar cfこれらとの違いは何ですかtar -Jchf?残念ながら、tar --help追加のパラメータを理解することはできませんでした-Jf

質問2)tarもアーカイブされますか?すべてを送信する目的は何ですか7za?二重報告?

答え1

コマンドの実際の違いは、次のJhようにスイッチです(man tar)。

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

したがって、シンボリックリンクはアーカイブを圧縮し、xzアーカイブリンク自体ではなくシンボリックリンクに従うように強制します。

関連情報