Linux
提取 Tarball 時忽略符號連結
我正在嘗試提取 tarball(確切地說是 *.tgz)並在提取的符號連結上接收終端錯誤。不幸的是,我不能簡單地重新創建存檔,因為這是一個不再存在的系統的遺留存檔,它是在我高中畢業之前創建的(必須喜歡為一家大公司工作)。
我諮詢了全能的Google;但是,我似乎只能找到在創建時排除/遵循符號連結的資訊。我收到的確切錯誤有點用詞不當(錯誤:只讀文件系統),並且來自於數據有效負載的很大一部分包含在眾多 squash / cram / loop 文件系統中的事實。符號連結引用其中的數據,顯然,由於在提取所述 tarball 時出現錯誤,無法安裝這些數據。雞; 遇見雞蛋。
所以,簡而言之:
*如何在忽略符號連結或忽略由此產生的符號連結錯誤的情況下提取 .tgz 存檔以完成?
以供參考:
$ tar --version tar (GNU tar) 1.26 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by John Gilmore and Jay Fenlason. $ uname -a Linux localhost.localdomain 3.7.9-205.fc18.x86_64 #1 SMP Sun Feb 24 20:10:02 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
-h(或–dereference)取消引用只會在創建時起作用。
參考:http ://www.gnu.org/software/tar/manual/tar.html#SEC138
根據此處的類似答案:How do I dereference links when extracting from a tar file? 您可以安裝存檔然後從中複製,儘管我自己沒有測試過。
喜歡的事都能輕鬆搞定。稱呼:
star -x f=archive.tgz -find ! -type l
最近的
star
資源在schilytools
包中。star
是最古老的免費 tar 實現。