다른 디렉토리에 tar 아카이브를 만드는 방법은 무엇입니까?

다른 디렉토리에 tar 아카이브를 만드는 방법은 무엇입니까?

현재 디렉터리가 아닌 다른 디렉터리에 tar 아카이브를 만들고 싶습니다.

나는 다음 명령을 시도했습니다.

tar czf file.tar.gz file1 -C /var/www/

그러나 현재 디렉터리에 아카이브가 생성됩니다. 왜?

답변1

특별하지 않다면 쉬운 방법필요-CTell을 사용하여 tar다른 디렉토리로 변경하려면 명령줄에서 아카이브의 전체 경로를 지정하기만 하면 됩니다. 그런 다음 원하는 디렉터리의 아카이브에 원하는 디렉터리 구조를 만들 수 있습니다.

다음은 아카이브를 생성하고 /var/www/file.tar.gz아카이브 내 경로 정보 없이 현재 디렉터리(어떤 일이 일어나든)에서 해당 아카이브에 드롭합니다.file1

tar czf /var/www/file.tar.gz file1

물론 경로(아카이브, 구성 요소 파일 또는 둘 다)는 상대적일 수도 있습니다. 에 file1있고 에 아카이브를 생성하려는 경우 다음과 같은 방법을 사용할 수 있습니다./tmp/var/spool/var/www

tar czf ../www/file1.tar.gz /tmp/file1

이 테마에는 수백만 가지 변형이 있지만 시작하는 데는 이것이 도움이 됩니다. v실제로 작동하는 모습을 보려면 이 플래그를 추가하세요 tar.

답변2

나는 다음과 같아야 한다고 생각합니다.
tar czf file.tar.gz -C /var/www/ file1

이것은 나에게 효과적입니다. 디렉토리를 변경한 다음 파일을 선택하라는 메시지가 표시됩니다.

답변3

압축된 데이터를 스트림( -)으로 변환하고 원하는 위치에 쉽게 이름을 바꾸고 위치를 지정합니다( ). >(또한 항상 tar상대 경로( ./)를 사용하므로 압축을 풀 때 처리하기가 더 쉽습니다.)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar

답변4

완벽하게 작동

cd /home; tar -czvf - /var/log/* > varlog.tar.gz

관련 정보