다음 명령을 사용하여 폴더를 보관하고 있습니다.
tar jcf "home/username/forum/forum.tar.bz2" /var/www/forum/
그런 다음 다음을 사용하여 추출합니다.
tar jxf forum.tar.bz2 ./
올바르게 추출되었지만 /home/username/forum/var/www/forum
폴더가 생성됩니다. 폴더 로 추출하려면 어떻게 해야 하나요 /home/username/forum
?
감사합니다
답변1
게다가dv3500ea의 답변var/www/forum/
, 다음 명령을 사용하여 다음을 포함 하는 타르볼을 추출할 수 있습니다 forum/
.
tar xjf forum.tar.bz2 --strip-components=2
var/
및 www/
두 개의 경로 구성 요소이므로 2
in --strip-components
.
타르볼 안에 무엇이 있는지 확실하지 않다면 다음 t
옵션을 사용하세요:
tar tjf forum.tar.bz2
less
스크롤할 때 화살표 키를 사용할 수 있도록 파이프를 연결하세요 .
사용된 옵션에 대한 일반적인 참고 사항:
x
- 타르볼을 추출합니다. 명령이 수행하는 작업을 확인하는 것이 가장 논리적이므로 항상 첫 번째 옵션으로 배치합니다.c
- 타르볼을 생성합니다t
- 타르볼의 내용을 나열합니다.j
- tar가 bzip2 압축된 tarball을 압축 해제하도록 합니다. 이는.bz2
확장 프로그램과 중복되므로 이 옵션도 제거할 수 있습니다.f
- 이 옵션은 파일 이름을 인수로 예상합니다. 추출할 타르볼(tar xf file.tar.bz2
) 또는 생성할 타르볼(tar cf file.tar.bz2
) 입니다.
답변2
-C /var/www/
아카이브를 생성할 때 아카이브를 생성하는 동안 현재 디렉터리를 /var/www로 변경하는 데 사용합니다 .
tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum
이렇게 하면 'forum' 폴더가 아카이브의 최상위 수준에 있게 되므로 다음을 실행할 때 현재 폴더로 직접 추출됩니다.
tar jxf forum.tar.bz2 ./
답변3
빠른(아마도 잘못된) 해결책은 tar링하기 전에 디렉토리를 변경하도록 명령을 변경하는 것입니다. 즉:
cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .