Linux

提取 Tarball 時忽略符號連結

  • March 20, 2019

我正在嘗試提取 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 實現。

引用自:https://unix.stackexchange.com/questions/76498