"Попередження про поштовий індекс: ім'я не відповідає" під час стискання каталогу


19

У мене папка об'ємом близько 180 ГБ, мені потрібно застебнути її так:

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 /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Відповіді:


7

Вашою командою має бути:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

Сторінка керівництва ( man zip) показує, що ви повинні мати:

zip <options> <archive> <inpath...>

Також -rдля цього настійно рекомендується варіант для рекурсії над "*" оболонкою.


Ще одна супутня помилка - це проста помилка введення тексту (наприклад, якщо ви скопіювали команду з одного сценарію в інший). Наприклад, замість цього winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*ви випадково набираєте текст winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Зауважте додатково Output.zip... легко зробити!
AlainD

23

Ця помилка може бути викликана також стисканням символьних посилань у дереві каталогів.

Якщо у них немає правильних пунктів призначення (можливо, тому, що каталог переміщено або скопійовано з іншого місця), zip спробує перейти за символьним посиланням для архівації цільового файлу.

Ви можете уникнути цього (а також отримати ефект, який ви, мабуть, хочете в будь-якому разі, а це не архівувати кілька копій файлу), скориставшись опцією -y(або --symlinks).


0

Використовуйте рекурсивний прапор ( -r) замість glob ( *) для компіляції файлів для стиснення. Крім того, вкажіть спочатку ім’я архіву, а потім надайте список файлів:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

У минулому я також отримував цю помилку з іншої причини, яку -rкомутатор не може виправити. Сталося те, що я базував файли, які потрібно додати до zip із наступним баш-кодом / змінною

somevar=`ls -1 somedir`

Проблема полягає в тому, що вони lsпросто перераховують файли, як ніби вони були у поточному каталозі, і саме тому zipє скаргами (по суті, файли не існують для zip, оскільки йому говорять шукати в неправильній / поточній директорії).

Якщо це ваша проблема, ви можете виправити її так:

somevar=`ls -1d somedir/*`

Як ви бачите, я використовував -dперемикач, а також /*в кінці імені каталогу, а потім файли були успішно додані.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.