
tar アーカイブを作成するために 2 つのオプションを組み合わせようとしていますが、うまく機能しません。何が問題なのかわかりません。
私が使う:
tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt
-C オプションのみを使用すると、相対パス "./html/" のみを含む tar アーカイブが作成されますが、そのフォルダー内のすべてのファイルが含まれます。これは望ましくありません。
次に、-T オプションのみを使用すると、必要なファイルのみを含む tar アーカイブが作成されますが、パスは絶対パス「/var/www/website/html/whatever.html」になります。これも望ましくありません。
2つを組み合わせたいのですが、どうもうまくいきません。
フォルダ構造は次のとおりです。
/var/www/website/html/
- 多数の.htmlファイル
/tmp/htmllist.txt フォルダには次のような行が含まれています。
- /var/www/ウェブサイト/html/file1.html
- /var/www/ウェブサイト/html/file5.html
- このサイトは
等々。
この問題をどうやって解決すればいいでしょうか?
答え1
Tar は を使用する場合は逆の動作をします-T
。完全なパスを含むファイルをアーカイブします。パスが必要ない場合は、抽出時にパスを削除します。たとえば、
tarballを作成する
tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt
tarballを解凍
tar -xvf html.tgz --strip-path=3
これにより、出力パス (つまり、/var/www/website) から 3 つのコンポーネントが削除されます。