상위 디렉토리를 제외하고 X 디렉토리를 tar하고 싶습니다.

상위 디렉토리를 제외하고 X 디렉토리를 tar하고 싶습니다.
tar cvf /var/lib/backup/sample.tar /home/user/.project

그러나 추출할 때 해당 부모도 얻습니다.

/backup/
  - /home/
     - /user/
        - .project/

user이 tar 명령은 상위 항목( 예: 아래의 다른 폴더) 에 다른 항목을 포함하지 않기 때문에 해당 작업을 수행합니다 .

저는 이 작업을 프로그래밍 방식으로 수행하고 싶기 때문에 현재 작업 디렉터리를 다음으로 변경하는 것은 /home/user/실제로는 선택 사항이 아닙니다. 이것이 가능합니까?

답변1

이 옵션을 사용하여 압축하기 전 이나 추출하는 동안 -C디렉터리를 변경할 수 있습니다 ./home/user--strip-components 2

tar cvfC /var/lib/backup/sample.tar /home/user .project
#                              Note the space ^
tar cvf /var/lib/backup/sample.tar /home/user/.project
tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2

답변2

내 생각 cd에 파일을 생성하려는 최상위 디렉터리로 이동 하면 tar이 문제가 발생하지 않을 것입니다. 즉,

cd~ user까지 .. tar이전 .project과 마찬가지로 tar 파일의 대상을 지정할 수 있습니다 /var/... .

아니면 하고 싶지 않거나 할 수 없는 이유가 cd있나요 user?

관련 정보