У меня есть папка размером около 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
не существует, но я пытаюсь его создать.
решение1
Эта ошибка также может быть вызвана сжатием символических ссылок в дереве каталогов.
Если они не имеют правильных назначений (возможно, потому что каталог был перемещен или скопирован из другого места),почтовый индекспопытается перейти по символической ссылке, чтобы заархивировать целевой файл.
Вы можете избежать этого (и также получить желаемый эффект, а именно не архивировать несколько копий файла), используя опцию -y
(или --symlinks
).
решение2
Ваша команда должна быть такой:
zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/
На странице руководства ( man zip
) показано, что вам необходимо иметь:
zip <options> <archive> <inpath...>
Кроме того, -r
для этого настоятельно рекомендуется использовать опцию рекурсии вместо символа оболочки "*".
решение3
Используйте рекурсивный флаг ( -r
) вместо glob ( *
) для сопоставления файлов для сжатия. Кроме того, сначала укажите имя архива, а затем укажите список файлов:
zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/
решение4
Обычно мы печатаем:
zip -r [file_name.zip] [file_name]
попробуйте так:
zip [file_name.zip] [file_name] -r
и затем введите исходный синтаксис:
zip -r [file_name.zip] [file_name]
Удивительно, но мне это помогло!!!