다른 대상 디렉토리로 어떻게 gunzip을합니까?


80

현재 디렉토리가 아닌 다른 대상 디렉토리에 어떻게 gunzip을합니까?

이것은 작동하지 않았다 :

gunzip *.gz /putthemhere/

답변:


104

gunzip표준 출력으로 출력하고 해당 디렉토리의 파일로 리디렉션하도록 요청 하십시오.

gunzip -c file.gz > /THERE/file

zcat에 대한 바로 가기입니다 gunzip -c.

여러 파일을 gunzip으로 압축하려면 모든 파일을 반복하십시오.

for f in *.gz; do
  STEM=$(basename "${f}" .gz)
  gunzip -c "${f}" > /THERE/"${STEM}"
done

(여기서는 basename확장자없이 파일 이름의 일부를 얻는 데 사용됩니다)


3
파일을 작성하지만 파일 소유권, 권한 등은 보존하지 않습니다. 정확한 상황에 따라 좋거나 나쁠 수 있습니다.
Chris Johnson

2

단일 파일을 추출해야하는 경우 루트 소유의 디렉토리에 쓰기, 다음 사용 sudo dd:

zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null

파일이 원격 소스 (예 : ssh, curl https 등)에서 온 경우 다음과 같이 수행 할 수 있습니다.

ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null

(이 예제 는 디렉토리의 모든 gzip 파일 인 * .gz 예제와 달리 단일 파일에 대해서만 작동합니다 .)


루트 권한으로 쓰는 sudo tee $filename >/dev/null경우을 사용하는 것보다 약간 관용적 dd입니다.
dcoles

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.