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


38

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

나는이 명령을 시도했다 :

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

그러나 현재 디렉토리에 아카이브를 만듭니다. 왜?


3
당신은 -C(모호하게 문서화 된 것처럼 이상하지 않음) 의 의미를 오해 한 것 같습니다 . 자세한 내용은 serverfault.com/q/416002/86283을 참조하십시오 .
NN

답변:


47

당신이 특히하지 않으면 쉬운 방법은, 필요 사용하는 -Ctar다른 디렉토리로 변경하려면 명령 줄에서 아카이브의 전체 경로를 지정하는 것입니다. 그런 다음 아카이브 내에서 원하는 디렉토리 구조를 작성하기를 원하는 디렉토리에있을 수 있습니다.

다음은 아카이브를 생성합니다 /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.


1
상대 경로를 사용할 수도 있습니다.
NN

@NN 절대적으로, 우리는 무엇인지 전혀 모르기 때문에 $PWD예제에서 절대 경로를 사용하는 것이 가장 안전 해 보였습니다.
CVn

실제로, 나는 그것이 문제를 해결하는 데 이용 가능한 옵션임을 보여주기 위해 그것을 포함시키는 것이 합리적이라고 생각했다.
NN

이런 식으로 file1tar 아카이브 의 경로는 입니다 /tmp. 이것은 당신이 기대할 수도 있고 아닐 수도 있습니다.
mouviciel

8

압축 된 데이터를 스트림 (-)으로 바꾸고 원하는 곳 어디에서나 쉽게 이름을 바꾸고 찾을 수 있습니다 (>). 또한 항상 상대 경로 (./)를 압축하여 압축을 풀 때 쉽게 처리 할 수 ​​있습니다)

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

개별 파일에는 도움이되지 않으며 -C훨씬 관용적이며 짧습니다.
Mahmoud Al-Qudsi

3

나는 생각해야한다 :
tar czf file.tar.gz -C /var/www/ file1

어느 것이 나를 위해 작동합니다. 디렉토리를 변경하고 파일을 선택하도록 지시합니다.


-2

완벽하게 작동

cd /home; tar -czvf - /var/log/* > varlog.tar.gz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.