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
?