작업 디렉토리 변경


13

에 디렉토리를 압축하려고합니다.

/home/cyrus/sql

폴더를 압축 할 때 작업 디렉토리를 변경하고 싶었습니다.

/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql

그러나 zip 파일을 확인할 때 :

/ $ unzip -l sql.zip

Archive:  sql.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2013-05-30 10:59   home/cyrus/sql/
  1776642  2013-05-23 10:22   home/cyrus/sql/wordpress.sql
---------                     -------
  1776642                     2 files

루트 폴더는이어야합니다 sql. 내가 뭘 잘못 했니?

답변:


10

보낸 사람 man zip:

-b path

 --temp-path path

임시 zip 아카이브에 지정된 경로를 사용하십시오. 예를 들면 다음과 같습니다.

zip -b /tmp stuff *

임시 zip 아카이브를 / tmp 디렉토리에 넣고 stuff.zip을 현재 디렉토리로 복사합니다. 이 옵션은 기존 아카이브를 업데이트 할 때 유용하며이 이전 아카이브를 포함하는 파일 시스템에 이전 아카이브와 새 아카이브를 동시에 보유 할 공간이 충분하지 않습니다. 데이터 디스크립터가 필요없는 경우에 스트리밍 할 때도 유용 할 수 있습니다. 이 옵션을 사용하면 대상 파일 시스템에 아카이브 파일을 복사 할 때 zip 시간이 추가로 소요될 수 있습니다.

기본적 zip으로 현재 디렉토리를 기준으로 전체 경로를 저장합니다. zip 파일에 sql디렉토리를 루트로 사용하려면 /home/cyrus디렉토리 에서 명령을 실행해야합니다 .


14

당신이 원하는 경우 zip해당 디렉토리의 내용과 저장 zip현재 디렉토리에 파일을, 당신은 그것을 쓸 수 있습니다 :

(cd /some/dir && zip -r - dir-there) > file.zip

5

-bzip디렉토리를 다른 곳으로 변경하지 말고 임시 파일을 넣을 위치 를 지정합니다 . 보낸 사람 man zip:

 -b path
      Use the specified path for the temporary  zip  archive.

이 시도:

cd /home/cyrus && zip sql.zip sql

또는 cd /home/cyrus && zip /sql.zip sql루트에 zip 파일을 만들려면
tripleee

2

이 권리를 이해하는지 확실하지 않지만 -b는 루트 폴더를 변경하지 않습니다. 임시 zip 아카이브를 / home / cryus 디렉토리에 넣고 sql.zip을 통해 현재 디렉토리로 복사합니다. 이 옵션은 기존 아카이브를 업데이트 할 때만 유용하며이 이전 아카이브를 포함하는 파일 시스템에 이전 아카이브와 새 아카이브를 동시에 보유 할 공간이 충분하지 않습니다.

사용하려고합니다 :

-j 저장된 파일의 이름 만 저장하고 (경로를 정크) 디렉토리 이름을 저장하지 마십시오. 기본적으로 zip은 전체 경로 (현재 경로를 기준으로)를 저장합니다.


1
-j옳지 않을 수도 있습니다. OP가 상대 경로를 유지하려고하지만 모든 경로를 제거하지는 않는다고 가정합니다.
tripleee

2

Stephane의 답변에서 영감을 얻었습니다.

(cd /home/cyrus; zip -r sql.zip sql;)

결과:

  1. / home / cyrus /에 sql.zip이 있습니다.
  2. sql.zip은 sql / 디렉토리와 모든 내용을 포함합니다
  3. 초기 PWD는 변하지 않습니다

4
이것이 어떻게 더 낫습니까?
Stephen Rauch

0

압축하려는 폴더를 현재 디렉토리에 심볼릭 링크하는 것이 더 쉬울 수 있습니다. 그렇게하면 당신이있는 곳에 머물 수 있습니다.

ln -s /path/to/whatever .
zip -r myzip whatever

원하는 경우 심볼릭 링크를 rm.

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