Intereting Posts
Не удается сохранить файл PDF со входами, сообщение об ошибке «Документ зашифрован» Как сохранить / загрузить аудио / звуковой файл из Интернета? (не от Youtube) Яркость экрана очень тускла на Dell XPS 13 (2013) Таинственное поведение команды эха Невозможно загрузить страницы в веб-браузерах «Установить как обои» также создает копию изображения Обновить консоль ubuntu 14.04.3 LTS до 15.10 Не удается запустить андроид-студию в Linux, получив эту ошибку. Ошибка: не удалось найти или загрузить основной класс com.intellij.idea.Main? Получите сумму всех значений в определенном столбце ListView в QML Плимут все еще бежит без «тихой всплеска»? Перезаписать существующую установку Ubuntu с установщиком сервера Является ли возвышенный законным для использования? Обозначения командной строки некоторых задач в Synaptic Я не могу установить Ubuntu 13.04 рядом с окнами 7 Что является безопасным способом записи паролей Firefox в Gnome Seahorse Keyring?

Как закрепить папку, но исключить подпапку .git

Я пытаюсь создать zip-файл из папки, и я хотел бы исключить подпапку .git из результирующего zip-файла.

Я перешел в родительскую папку той, которую хочу сделать zip ( называемой bitvolution ), и я делаю:

 zip -r bitvolution.zip bitvolution -x ".git" 

Но это не исключает подпапку .git .

Я пробовал различные комбинации, -x .git* , -x \.git/* , -x .git/\* , -x \.git/\* . Я также попытался использовать полный путь для аргумента exclude … но просто не добрался туда.

Правильное выражение: -x *.git* , поэтому полная команда должна быть:

 zip -r bitvolution.zip bitvolution -x *.git* 

Объяснение из http://selfsolved.com/problems/zip-command-exclude-svn-director :

Правильное заклинание

 zip -9 -r --exclude=*.svn* foo.zip [directory-to-compress] 

Вы также можете добавить
--exclude=*.DS_Store* чтобы исключить раздражающий каталог файлов метаданных Mac OS X.

Обратите внимание, что выражение, переданное в --exclude , использует весь исходный путь относительного каталога в качестве исходной строки для сопоставления. Так что .svn/* сам по себе не работает; символ подстановки гарантирует, что он соответствует .svn любом месте дерева каталогов.

Если вы пытаетесь закрепить проект, который хранится в Git, используйте команду git archive . Внутри исходного каталога:

 git archive -o bitvolution.zip HEAD 

Вы можете использовать любой фиксатор или идентификатор тега вместо HEAD для архивации проекта в определенный момент.

Если вы хотите добавить префикс (например, папку верхнего уровня) в каждый файл:

 git archive -o bitvolution.zip --prefix=bitvolution/ HEAD 

Вы также можете настроить уровень сжатия между 0 (без сжатия) и 9 (максимальное сжатие) включительно, например

 git archive -o bitvolution.zip -9 HEAD 

Другие параметры см. На странице справки ( git help archive ).

Я добавил обратную косую черту:

 zip -r bitvolution.zip bitvolution -x \*.git\* 

справочная страница о обратной косой чертой:

Обратная косая черта позволяет избежать замены имени файла shell, так что совпадение имен выполняется по zip на всех уровнях каталогов.

Предполагая, что у вас установлена ​​git на машине, вы это делаете, вы также можете использовать git для создания своего архива.

 git archive --format=zip HEAD -o bitvolution.zip