Как добавить человека и zip к установке "git bash" в Windows
Я использую "git bash
" для Windows - git
для Windows с помощью встроенного bash
. По-видимому, он использует поддержку MINGW/MSYS. (Обновление от @VonC: теперь использует msys2, поскольку msysgit устарел с Q4 2015.)
Итак, уже установлено множество инструментов MSYS - от awk
до zcat
. Однако я пропустил команду man
и zip
, чтобы сжать несколько файлов в zip файл (unzip
exists!).
Откуда я могу их установить? Я не хочу устанавливать другую копию системы MINGW! Любой способ просто добавить некоторые предварительно скомпилированные инструменты в установку git bash
?
Ответы
Ответ 1
Команда zip
может быть установлена из GoW (Gnu On Windows). man
не предоставляется (слишком большой).
Следует отметить, что если вы хотите добавить команду zip
из GoW, все же необходимо загрузить и установить всю систему GoW. Затем вы можете удалить другие команды из каталога bin
, однако обязательно сохраните нужные DLL в каталоге.
Ответ 2
Я так рад поделиться своим опытом по этому вопросу, которого я не знал уже два года с первого дня, когда я играл с Groovy. Мой метод должен иметь git
для Windows, установленной в ОС Windows.
Эти шаги предназначены для установки утилиты командной строки 7z
, которая немного отличается от zip
:
- Загрузите и установите 7-Zip с официального сайта. По умолчанию он установлен в каталоге
/c/Program Files/7-Zip
в Windows 10, как в моем случае.
- Запустите git Bash с правами администратора и перейдите в каталог
/c/Program Files/Git/mingw64/bin
, вы можете запустить команду ln -s "/c/Program Files/7-Zip/7z.exe" 7z.exe
Я уверен, что это может вам очень помочь. Доверьтесь мне!
Ответ 3
Добавить 7-zip в gitbash легко.
- Установите 7-zip на Windows.
- добавить 7-Zip папку (
C:\Program Files\7-Zip
) в PATH
В gitbash
exp: export PATH=$PATH:"C:\Program Files\7-Zip"
(временный)
В Windows добавьте PATH как изображение ниже (постоянный)
![enter image description here]()
- дубликат копии 7z.exe для zip.exe
- снова открыть Гитбаш. сделано!
Если вы пропустите шаг 3. вы все равно можете вызвать команду zip как 7z
вместо zip
Я только что заставил это работать! на моем ноутбуке.
Вывод: Gitbash работает на базе Windows Path, я думаю, что вы можете запустить любую команду, которую вы добавили в Windows PATH.
Кстати, не забудьте оставить отзыв о своем результате, если попробуете это.
Ответ 4
git-archive
, подготовлен без установки, может создать zip-архив.
mkdir workrepo
cd workrepo
git init
cp -r [target_file_or_dir] .
git add .
git commit -m commit
git archive -o ../myarchive.zip @
cd ..
rm -rf workrepo
Следующий скрипт может быть использован: zip.sh foo.zip target_file_or_dir
#!/usr/bin/bash
set -eu
unset workdir
onexit() {
if [ -n ${workdir-} ]; then
rm -rf "$workdir"
fi
}
trap onexit EXIT
workdir=$(mktemp --tmpdir -d gitzip.XXXXXX)
cp -r "$2" "$workdir"
pushd "$workdir"
git init
git add .
git commit -m "commit for zip"
popd
git archive --format=zip -o "$1" --remote="$workdir" HEAD
Ответ 5
Вы можете имитировать небольшое подмножество поведения человека в оболочке, сопоставляя man <command>
с <command> --help | less
К сожалению, на моей машине bash aliases не будут добавлять флаги в позиционные аргументы, она попытается запустить флаг как команду и не сработает (alias man="$1 --help"
не работает).
И функция, называемая man()
, не допускается!
К счастью, комбинация функций bash и псевдонимов может достичь этого соответствия. Поместите код ниже в ~/.bashrc(создайте его, если его там нет). Не забывайте source ~/.bashrc
.
# man command workaround: alias can't pass flags, but can't name function man
m() {
"$1" --help | less
}
alias man="m"
Это не дает вам полную страницу man, но если все, что вы ищете, это базовая информация о команде и ее флагах, это может быть все, что вам нужно.
Ответ 6
Вы можете установить отдельные инструменты GNU из http://gnuwin32.sourceforge.net/packages.html, например, zip
.
Затем добавьте "/c/Program Files (x86)/GnuWin32/bin"
в PATH
в вашем скрипте запуска, например .profile
, .bash_profile
, .bashrc
и т.д.
Ответ 7
Вот еще один, немного другой, набор инструкций по установке zip для git bash на windows:
- Перейдите по адресу https://sourceforge.net/projects/gnuwin32/files/zip/3.0/.
- Загрузить
zip-3.0-bin.zip
- В zip файле в папке
bin
найдите файл zip.exe
. - Извлеките файл "zip.exe" в папку bin "mingw64" (для меня:
C:\Program Files\Git\mingw64\bin
) - Перейдите по адресу https://sourceforge.net/projects/gnuwin32/files/bzip2/1.0.5/.
- Скачать
bzip2-1.0.5-bin.zip
- В архивном файле в папке
bin
найдите файл bzip2.dll
- Извлеките
bzip2.dll
в папку "mingw64" (та же папка - C:\Program Files\Git\mingw64\bin
)
Ответ 8
Вот шаги, которые вы можете выполнить.
-
Перейдите по следующей ссылке https://sourceforge.net/projects/gnuwin32/files/
-
Узнайте, какую команду вы пропустили. Здесь мне нужны zip и bzip2 для команды zip. Потому что для запуска команды zip используется bzip2.dll. В противном случае вы получите ошибку "ошибка при загрузке общих библиотек:?: Невозможно открыть файл общего объекта: нет такого файла или каталога".
-
Разархивируйте загруженные файлы. Здесь я загружаю "zip-3.0-bin.zip" для "zip.exe" и "bzip2-1.0.5-bin.zip" для "bzip2.dll" в папке bin. /bin/.exe
-
Скопируйте исполняемый файл команды в папку git-bash. Здесь я копирую "zip.exe" и "bzip2.dll" в \Git\usr\bin.
Ссылка Ссылка https://ranxing.wordpress.com/2016/12/13/add-zip-into-git-bash-on-windows/
Ответ 9
Что касается zip
, вы можете использовать следующий perl
скрипт для упаковки файлов:
#!/usr/bin/perl
use IO::Compress::Zip qw(:all);
$z = shift;
zip [ @ARGV ] => $z or die "Cannot create zip file: $ZipError\n";
Если вы сделаете его исполняемым, назовите его zip
и поместите в свой $PATH
, вы можете запустить его так:
zip archive.zip files...
однако это не будет работать для каталогов. Не нужно ничего устанавливать, так как perl
и все необходимые модули уже есть в Git для установки Windows.
Что касается man
, по крайней мере для git
есть документация, которая вызывается так:
git option --help
он откроется в вашем браузере по умолчанию.
Ответ 10
Если вы также хотите установить CygWin, вы можете добавить путь CygWin к вашему пути GitBash, и если zip там, он будет работать. например добавить
PATH=$PATH:/c/cygwin/bin
export PATH
на ваш .bashrc
; ПРИМЕЧАНИЕ: я бы поставил его в конце пути, как показано, а не в начале.
Поскольку CygWin имеет установщик на основе пользовательского интерфейса, легко добавлять или удалять приложения, такие как zip или man.
Вы можете выяснить пути окон каждого, сказав
'cygpath -w /bin'
в каждой соответствующей оболочке.