ハードリンクをサポートしていないファイルシステムでハードリンクを持つタールボールを解凍する

ハードリンクをサポートしていないファイルシステムでハードリンクを持つタールボールを解凍する

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/

おすすめ記事