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
アーカイブリンク自体ではなくシンボリックリンクに従うように強制します。