약 180GB의 폴더가 있으며 다음과 같이 압축해야합니다.
zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip
그러나 그것은 말합니다 :
zip warning: name not matched: /Volumes/Storage 4/archive.zip
어떻게하면 되나요? 또 다른 메모로 archive.zip
는 존재하지 않지만 만들려고합니다.
답변
당신의 명령은 다음과 같아야합니다 :
zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/
매뉴얼 페이지 ( man zip
)에는 다음이 있어야합니다.
zip <options> <archive> <inpath...>
또한 -r
“*”쉘 글로브보다 재귀 옵션을 사용하는 것이 좋습니다.
답변
이 오류는 압축중인 디렉토리 트리의 기호 링크로 인해 발생할 수도 있습니다.
대상이 올바른 대상이 아닌 경우 (아마도 디렉토리가 다른 곳에서 이동되거나 복사 되었기 때문에) zip 은 symlink를 따라 대상 파일을 아카이브하려고 시도합니다.
-y
(또는 --symlinks
) 옵션 을 사용하여이를 피할 수 있습니다 .
답변
압축 할 파일을 일치 시키려면 -r
glob ( *
) 대신 재귀 플래그 ( )를 사용하십시오 . 또한 먼저 아카이브 이름을 지정한 다음 파일 목록을 제공하십시오.
zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/
답변
또한 -r
스위치에서 해결할 수없는 다른 이유로 과거 에이 오류가 발생했습니다 . 무슨 일이 있었는지 다음 bash 코드 / 변수로 zip에 추가 할 파일을 기반으로했습니다.
somevar=`ls -1 somedir`
문제는 ls
단지 현재 디렉토리에있는 것처럼 파일을 나열하는 것이므로 이것이 zip
불평하는 이유 입니다 (실제로 파일이 잘못된 / 현재 디렉토리를 보도록 지시되어 있기 때문에 파일이 압축되어 있지 않습니다).
이것이 문제인 경우 다음과 같이 수정할 수 있습니다.
somevar=`ls -1d somedir/*`
보시다시피 -d
스위치를 사용 /*
하고 디렉토리 이름 끝에 파일을 성공적으로 추가했습니다.