t.tar.gz
次のファイルを含むtarballがあります。
./a/a.txt
./b/b.txt
へのハードリンクはどこに./b/b.txt
ありますか./a/a.txt
?
同じディレクトリのハードリンクのみをサポートするネットワークファイルシステム(AFS)でtarballを解凍したいと思います(参照:ここ)。そのため、解凍するとtar -xzf t.tar.gz
ハードリンクを生成できないというエラーが発生します。./b/b.txt
これまでのところ、この問題に対する私の解決策は、通常の./t.tar.gz
ハードリンクをサポートするファイルシステムで解凍することです。その後、再パッケージします。オプションは次--hard-dereference
のとおりです。GNU tar マニュアル提案。最後に、新しいtarballをAFSに抽出します。
これが私とうまく合わないので、アーカイブの内容を最終目的地に直接解凍するより簡単な方法があるかどうか尋ねたいと思います。たとえば、アーカイブの--hard-dereference
代わりに解凍するのと同等のオプションはありますか?
答え1
アーカイブをディレクトリにマウントします。AVFSを選択し、お気に入りのファイルコピーツールを使用します。
mountavfs
cp -a --no-preserve=links ~/.avfs/path/to/t.tar.gz\# target-directory/
または
mountavfs
rsync -a ~/.avfs/path/to/t.tar.gz\#/ target-directory/