ディレクトリ全体のレイアウトを保存しながら、特定のディレクトリ内のすべてのアイテムをアーカイブに保存しようとするため、高レベルのディレクトリ名が必要です。
次のコマンドを実行します。
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
アーカイブからファイルを抽出するときにも使用する必要があります。/