Tar
在不支持硬連結的文件系統上使用硬連結解壓縮 tarball
我有一個
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
解包而不是歸檔的等效選項?
將存檔掛載為目錄,例如使用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/