tar가 하나의 재귀 심볼릭 링크를 제외한 모든 심볼릭 링크를 따르도록 만드는 방법

tar가 하나의 재귀 심볼릭 링크를 제외한 모든 심볼릭 링크를 따르도록 만드는 방법

그대로 두어야 하는 하나의 재귀 심볼릭 링크를 제외하고 tar모든 심볼릭 링크(예: with )를 따르는 아카이브 를 만드는 방법(필요한 경우 여러 명령 사용)이 있습니까 ?tar -h

다음과 같은 디렉토리 구조가 있습니다.

project1
  code folder
  dependencies folder
    symlink to project1 folder (recursive!)
    symlink to project2 folder
    symlink to project3 folder
    ... more symlinks, folders, etc
project2
  code folder
project3
  code folder
... more projects

tar project1같은 외부 폴더를 복사하기 위해 모든 심볼릭 링크를 따르기를 원 하지만 필요하지 않고 영원히 실행되도록 하는 재귀 심볼릭 링크를 따르기를 원하지 않습니다.project2project3tar

man페이지 에서 볼 때 이 작업을 수행할 수 있는 것처럼 보이지만 tar -H따라가고 싶은 각 심볼릭 링크를 지정해야 합니다. 이는 다른 심볼릭 링크 종속성이 추가될 때마다 업데이트해야 하는 긴 목록이므로 유지 관리가 덜 가능한 솔루션을 찾고 있습니다.

여기서 빠른 대답은 "재귀적 심볼릭 링크를 사용하지 마십시오"이며 그것이 제가 지금 하고 있는 일이지만, 그것은 내 프로젝트에 갖고 싶은 것이고 이 문제에 대한 해결책을 찾지 않고서는 그것을 할 수 없습니다.

답변1

아카이브를 만들고,그리고 -h, 하지만들어오지 못하게 하다특정 질문에 대한 링크 --exclude=path/to/naughty/symlink.

그런 다음 문제의 자녀를 추가하세요.tar --append 아니요 -h.

하다아니요압축된 타르볼은 "후처리"(예: 및 )와 호환되지 않으므로 압축 옵션(예: tar j또는 )을 사용하십시오 . 파일 첨부가 완료되면 다음을 수행할 수 있습니다 .tar z--append--deletegzip tarball.tar

관련 정보