tarball(정확히는 *.tgz)을 추출하려고 하는데 추출된 심볼릭 링크에서 터미널 오류가 발생합니다. 안타깝게도 더 이상 존재하지 않는 시스템의 레거시 아카이브이고 고등학교를 졸업하기 전에 만들어진 아카이브이기 때문에 단순히 아카이브를 다시 만들 수는 없습니다(대기업에서 일하는 것을 좋아할 것입니다).
전능하신 Google에 문의했지만 심볼릭 링크 제외/추종에 대한 정보만 찾을 수 있는 것 같습니다.만들다시간. 내가 받고 있는 정확한 오류는 잘못된 이름(오류: 읽기 전용 파일 시스템)이며 데이터 페이로드의 상당 부분이 수많은 압착/채우기/루프 파일 시스템에 포함되어 있다는 사실에서 비롯됩니다. 심볼릭 링크는 그 안에 있는 데이터를 참조하는데, 해당 타르볼을 추출하는 동안 오류로 인해 분명히 설치할 수 없습니다. 치킨, 계란을 만나다.
간단히 말해서:
심볼릭 링크를 무시하거나 결과 심볼릭 링크 오류를 무시하면서 *.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
답변1
-h(또는 --dereference) 역참조는 생성 시에만 작동합니다.
인용하다:http://www.gnu.org/software/tar/manual/tar.html#SEC138
비슷한 답변을 바탕으로 다음과 같습니다.tar 파일에서 추출할 때 링크를 역참조하는 방법은 무엇입니까? 아카이브를 마운트한 다음 복사할 수 있지만 직접 테스트하지는 않았습니다.
답변2
좋아하는 일은 쉽게 할 수 있습니다. 부르다:
star -x f=archive.tgz -find ! -type l
최신 리소스가 패키지 star
에 포함되어 있습니다 . 가장 오래된 무료 tar 구현입니다.schilytools
star