素晴らしい権限を持つフォルダがあるとしましょう。
mkdir abc
mkdir abc/def
chmod 777 abc
今バックアップを作成したいと思います。
tar -cpzvf test.tar.gz abc/def/
それでは、abc /を削除してアーカイブから復元してみましょう。
rm -rf abc/
tar -xpzvf test.tar.gz
abc/
もはや元の権限がありません。
find abc -printf "%m:%f\n"
755:abc
abc/(abc/def/の代わりに)をパラメータとして指定してtarファイルを作成すると、両方のフォルダの権限がうまく復元されることがわかります。しかし、私の場合は、abc / def /をパラメータとして明示的に指定する必要があります。同じ結果を得る方法はありますか?
ベストアンサー1
@schilyの良い答えにフォローアップするには、それ以外のサブディレクトリを追加せずに最上位ディレクトリをabc
アーカイブに追加するには、def
GNUを使用してtar
次のようにします。
tar -zcf file.tgz --no-recursion abc --recursion abc/def
libarchiveを使用するbsdtar
か、いつでも必要なファイルの正確なリストの生成pax
に戻すことができます。find
(printf 'abc\0'; find abc/def -print0) | bsdtar -zcnf file.tgz --null -T -