Подтвердить что ты не робот

Командная строка застегивает все в директории, но не включает никакой каталог в качестве корня

Я не могу найти ответ на этот вопрос для жизни меня. Поскольку я собираю почтовый индекс определенным способом для процесса сборки, я не хочу включать в него всю папку в результате zip в корне. Например, если у меня есть этот путь к файлу:

MyFolder/
    A.png
    B.txt
    C.mp3

И я использую либо команду:

zip -r -X "MyFolder.zip" MyFolder/*

или

cd MyFolder; zip -r -X "../MyFolder.zip" *

В итоге получается zip файл с корневым элементом MyFolder. То, что я хочу, - это когда я разархивирую его, чтобы сбрасывать все это прямо в каталог, например:

A.png
B.txt
C.mp3

Другими словами, я не хочу, чтобы MyFolder или любая другая папка были корневыми. Я прочитал все руководство и попробовал множество опций и много поисков Google, и zip, похоже, просто хочет иметь папку в корне.

Спасибо!

4b9b3361

Ответ 1

Это ошибка архивной утилиты (приложение для распаковки Mac OS X). Когда я использовал команду unzip из командной строки, она отлично работает.

cd MyFolder; zip -r -X "../MyFolder.zip" *

Ответ 2

Наткнулся на этот ответ, но не хотел менять его из каталогов. Я нашел полезную опцию -j, которая добавляет все файлы в корень zip. Обратите внимание, что это все файлы, поэтому структура подкаталога не будет сохранена.

Итак, с этой структурой папок:

MyFolder
 - MyFile1
 - MySubFolder
   - MyFile2

И эта команда:

zip -rj MyFolder.zip MyFolder

Вы получаете следующее:

MyFolder.zip
 - MyFile1
 - MyFile2