출력을 즉시 tar / untar하는 방법


27

다음을 수행하는 관용적 방법은 무엇입니까

  • 타르에서 표준 출력으로
  • stdout 에서이 tar 출력을 읽고 다른 폴더로 추출하십시오.

내 해결책은 tar --to-stdout .. | tar -C somefolder -xvf -

그러나 더 관용적 인 방법이있을 수 있습니다.

답변:


34

동일한 -f -옵션 이 타링에도 적용됩니다.

tar -cf - something | tar -C somefolder -xvf -

GNU tar는 기본적으로 stdio를 사용합니다 :

tar -c something | tar -C somefolder -xv

rsync도 인기가 있습니다.

rsync -av something/ somefolder/

9

다른 유스 케이스를 여기에 추가하십시오. 디스크 공간이 거의없는 시스템에 큰 디렉토리 구조가 있었고 공간이 많은 다른 컴퓨터의 디렉토리 구조에 대한 tar.gz 파일로 끝나기를 원했습니다.

tar -czf - big-dir | ssh user@host 'cat > /path/to/big-dir.tar.gz'

이는 네트워크 오버 헤드를 절약하고 대신 전송에 rsync를 사용하려는 경우 다른 쪽을 tar 할 필요가 없음을 의미합니다.


Netcat은 이에 적합합니다. (한 호스트에서 다른 호스트로 고양이).
Hennes

3
@Hennes : 인증, 무결성 검사, 데이터 암호화가 부족 하고 각 개별 전송 (즉, 작업의 2 배)에 대해 수동으로 양쪽 에서 수동으로 시작해야 할뿐만 아니라 완벽하지 않은 사운드
Grawity

대부분의 경우 네트워크를 통해 덤프하기 전에 압축합니다. 모든 integretiy 실패는 감압 오류로 나타날 가능성이 높습니다 (사용했을 때 전혀 얻지 못했지만). 두 가지 프로그램을 시작하는 것에 관해서는 : Aye, true.
Hennes

3
더 많은 작업이 필요할 수 있지만 보안 로컬 네트워크의 컴퓨터 간 또는 VPN을 통해 시간에 민감한 작업을 수행하는 동안 링크를 통해 큰 압축 아카이브를 보내면 nc를 통한 파이핑이 SSH보다 훨씬 빠릅니다 (1Gb 네트워크를 통해) 2 배로). 무결성 검사를 위해 아카이브의 md5 합계를 보냅니다.
스풀러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.