Избегайте нежелательного пути в Zip-файле

Я создаю скрипт оболочки для упаковки некоторых файлов. Я застегиваю каталог следующим образом:

zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/ 

Проблема заключается в том, что в результате в архиве out.zip есть весь путь к файлу. То есть, при распаковке, в нем будет весь путь «/ Users / me / development / anotherthing /». Можно ли избежать этих глубоких путей при помещении каталога в архив?

Когда я запускаю zip изнутри целевого каталога, у меня нет этой проблемы.

 zip -r out.zip ./folder/ 

В этом случае я не получаю все мусор. Однако сценарий, о котором идет речь, будет вызываться откуда угодно.

FWIW, я использую bash для Mac OS X 10.6.

Ваш скрипт должен использовать cd или pushd и popd для перемещения в каталог, который будет корнем архива перед выдачей команды zip . Как вы это сделаете, это будет зависеть от того, как скрипт знает, что делать. Но, если вы хотите / Users / me / development / something / folder, заархивированные внутренними путями только ./folder , вам нужно будет сделать это:

 pushd /Users/me/development/something zip -r /path/to/out.zip ./folder/ popd 

Это приведет к вашему out.zip, содержащему относительные пути, которые вы хотите.

Если вам нужна помощь в написании сценариев, вам нужно показать нам свой скрипт.

Проблема заключается в том, что в результате в архиве out.zip есть весь путь к файлу.

Можно ли избежать этих глубоких путей при помещении каталога в архив?

Да. Используйте опцию -j с zip . -j – это «мусорный путь». Согласно странице man на zip :

Храните только имя сохраненного файла (неактивный путь) и не храните имена каталогов. По умолчанию zip сохранит полный путь (относительно текущего каталога).

Использование -j означает следующую команду:

 zip -j myarchive.zip file1.txt dir1/file2.txt dir2/dir3/file3.txt ../file4.txt 

Создаст архив, который выглядит так:

 myarchive.zip | +-- file1.txt +-- file2.txt +-- file3.txt +-- file4.txt 
  • Tar - отбросить структуру каталогов
  • java.util.zip - Восстанавливающая структура каталогов
  • В Java: как zip-файл из массива byte ?
  • Использование R для загрузки ZIP-файла, извлечения и импорта данных
  • Создание ZIP-файла в Windows (XP / 2003) в C / C ++
  • Как собрать zip-файл, который был отправлен по электронной почте в нескольких частях?
  • Могу ли я остановить окна из «Блокирующих» zip-файлов
  • Лучшая практика Maven для создания искусственного артефакта zip
  • Нужно ли загружать заархивированный файл больше времени, чем распакованный файл?
  • Устанавливается ли Windows 7 в командной строке по умолчанию?
  • Сжать большой CSV-фильтр? (500MB)
  • Interesting Posts

    Максимальный допустимый размер HttpRequest в tomcat?

    Как заставить Windows 7 создать новый профиль домена с тем же именем, что и существующий?

    NSCalendar первый день недели

    Как правильно писать код C / C ++, когда нулевой указатель не все биты нуль

    как получить префикс страны страны от iso

    Git vs SVN: эффективность хранения веб-сайта

    Правый выравнивающий текст в android TextView

    Самый короткий способ написать streamобезопасный метод доступа к управлению формами окон

    Oracle (ORA-02270): нет соответствующего уникального или первичного ключа для этой ошибки в столбце

    Могу ли я избавиться от строки состояния в нижней части Eclipse?

    Массив кортежей в Свифте

    IIS7, web.config, чтобы разрешить только статический обработчик файлов в каталоге / загрузках веб-сайта

    Как использовать разделители без дефолта при чтении текстового файла с помощью std :: fstream?

    сделать JLabel обернуть его текстом, установив максимальную ширину

    Как открыть сеанс удаленного рабочего стола на дополнительном мониторе?

    Давайте будем гением компьютера.