태양 솔라리스에서 압축 된 타르를 만들려면 어떻게해야합니까?


11

Sun Solaris OS에 로그인했습니다. 압축 된 tar 파일을 만들고 추출하고 싶습니다. 이 일반적인 UNIX 명령을 시도했습니다.

tar -cvzf file.tar.gz directory1

다음과 같은 오류로 Sun OS에서 실행되지 않습니다

bash-3.2$ tar -cvzf file.tar.tz directory1
tar: z: unknown function modifier
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@[0-7]][bfk][X...] [blocksize] [tarfile] [size] [exclude-file...] {file | -I include-file | -C directory file}...

2
이것이 일반적인 UNIX 명령이라고 생각하는 이유는 무엇입니까?
schaiba

유닉스 리눅스와 GNU 툴의 차이점을 읽는 데 시간을 할애해야한다고 생각합니다.
coteyr

4
그들이 zGNU tar 에 그 플래그를 추가했을 때 , 우리는 사람들에게 논리적으로 사고하고 파이프 라인을 구성하는 방법을 가르치는 가장 위대한 예를 잃었습니다 ...

답변:


28

임시 중간 파일을 작성하지 않으려면이 명령을 사용할 수 있습니다

tar cvf - directory1|gzip -c >file.tar.gz

2
이는 일부 처리가 병렬로 발생할 수 있다는 잠재적 이점이 있습니다.
psmears

f -필요 또는 Solaris 않습니다 tar출력은 기본적으로 stdout에?
Mark

2
@Mark : man 페이지 에 따르면 , " f생략 하지 않으면 환경 변수로 tar표시된 장치 TAPE가 설정되어 있으면 사용하고 그렇지 않으면에 정의 된 기본값을 사용합니다 /etc/default/tar." 따라서 아닙니다. 필요하지 않다고 안전하게 추측 할 수있는 것처럼 f -보이지 않습니다.
Ilmari Karonen

@Romeo : 답변 주셔서 감사합니다, 나는 그것이 유용하다는 것을 알았습니다. cvf와 디렉토리 이름 사이에 "-"가 필요한 이유를 알 수 있습니까? 또한 Solaris 10, 11.4, Linux (RHEL, CentOS, Oracle 등)와 같은 여러 OS에서 명령을 시도했으며 일관되게 작동합니다. 나는 또한 각각의 tar man 페이지를 검토했다-왜 cvf 전에 "-"없이 리눅스에서 위의 작업을 하는가? 나는 리눅스가 "tar -cvf ...."와 같은 것을 요구할 것이라고 대답했다.
rc1

@ rc1, tar의 대시는 출력 파일을 STDOUT으로 설정했음을 의미합니다. 매개 변수에는 BSD와 SYSV의 두 가지 스타일이 있습니다. 그리고 리눅스 타르는 둘 다 (cvf 이전에 대시없이) 작동합니다
Romeo Ninov

10

Solaris tar가 압축 방법을 모르는 것 같습니다 . 따라서 수동으로 수행하십시오.

tar -cvf file.tar directory1 && gzip file.tar

-z어쨌든 그것은 GNU tar 의 모든 스위치입니다. 위의 명령은을 생성 file.tar.gz합니다.


중간 압축되지 않은 file.tar아카이브 를 저장하기에 충분한 여분의 디스크 공간이있는 한 작동 하지만 디스크 공간이 불필요하게 느리고 낭비입니다. 나는 이것이 Romeo Ninov의 대답 보다 선호되는 상황을 생각할 수 없습니다 .
Ilmari Karonen

1
@IlmariKaronen 나도 할 수 없다. 나는 이것을 처음으로 생각했다.
terdon

2

SUNWgtar설치 했는지 확인하십시오 . 이러한하여 GNU 버전 tar및 제공 /usr/sfw/bin/gtar타르에 GNU 옵션의 사용을 허용 것이다.


-1

아래 명령을 시도하십시오

tar -cvf file.tar directory1 && gzip file.tar

(솔라리스에 파일을 압축하기 위해)

gunzip file.tar.gz

(압축 해제)



또한 파일의 아카이브를 해제하는 대신 전체 tar 파일 (헤더의 모든 바이너리를 포함)을 터미널에 덤프합니다. 나중에 터미널을 재설정해야합니다.
Paul_Pedant 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.