Tar --absolute-names フラグが機能しません。

Tar --absolute-names フラグが機能しません。

ディレクトリ全体のレイアウトを保存しながら、特定のディレクトリ内のすべてのアイテムをアーカイブに保存しようとするため、高レベルのディレクトリ名が必要です。

次のコマンドを実行します。

tar --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .

ただし、これは以下のディレクトリレイアウトのみを保存しますopt

dir1
dir1/file
file1
file2

--absolute-namesマニュアルで理解しているように、orを使用する必要がありますが、-P上記のコマンドに追加すると両方が機能しません。

tar --absolute-names --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .

何が問題なのでしょうか?

アーカイブで必要なディレクトリレイアウトは、次のとおりです。

/home/user/opt/dir1
/home/user/opt/dir1/file
/home/user/opt/file1
/home/user/opt/file2

答え1

これを使用すると、FOOディレクトリに切り替えてそこからアーカイブを開始するように--directory FOO .求められます。tar

フルパス名が必要な場合は、パターンとして指定する必要があります。

例えば

tar -czf /home/user/test_backup.tgz /home/user/opt

しかし、こうすれば主人公の能力が消えるようになるので、そうしないように指示しなければなりません/tar

tar --absolute-names -czf /home/user/test_backup.tgz /home/user/opt

答え2

$ tar -P -cvzf archive.tgz /path/to/dir

これにより、内容/path/to/dirから始まるフルパスを含むアーカイブが作成されます/path/to/dir

パスの先頭を維持するには、-Pアーカイブからファイルを抽出するときにも使用する必要があります。/

関連情報