如何在Windows上的"git bash"安装中添加man和zip

hal*_*leo 38 windows git install git-bash mingw-w64

我在Windows上使用" git bash" - git通过集成用于Windows bash.显然它使用了MINGW/MSYS支撑.(更新自@VonC:它现在使用msys2,因为自2015年第四季度以来msysgit已经过时.)

所以已经安装了很多MSYS工具 - 从.awkzcat.但是我错过了man命令并将zip多个文件压缩成zip文件(unzip存在!).

从哪里可以安装它们?我不想安装MINGW系统的另一个副本!任何方式只是为安装添加一些预编译工具git bash

NSj*_*nas 23

这是在 Windows 上为 git bash 安装 zip 的另一组略有不同的说明:

  1. 导航到https://sourceforge.net/projects/gnuwin32/files/zip/3.0/
  2. 下载 zip-3.0-bin.zip
  3. 在压缩文件的bin文件夹中,找到文件zip.exe.
  4. 文件“zip.exe”解压到你的“mingw64” bin文件夹(对我来说:C:\Program Files\Git\mingw64\bin
  5. 导航到https://sourceforge.net/projects/gnuwin32/files/bzip2/1.0.5/
  6. 下载 bzip2-1.0.5-bin.zip
  7. 在压缩文件中,在bin文件夹中,找到文件bzip2.dll
  8. 解压bzip2.dll到您的“mingw64”bin 文件夹(同一文件夹 - C:\Program Files\Git\mingw64\bin

  • 这就像魔术一样——超出了我的理解,为什么它需要 bzip2.dll 文件。 (2认同)
  • 到 2022 年,这对于 Windows 爱好者来说仍然有效。非常感谢。 (2认同)
  • `C:/Program Files/Git/mingw64/bin/zip.exe: 加载共享库时出错: ?: 无法打开共享对象文件: 没有这样的文件或目录` 有任何线索如何解决这个问题吗?我已将 `zip-3.0-bin.zip\bin\zip.exe` 和 `bzip2-1.0.5-bin.zip\bin\bzip2.dll` 复制到 `Git/mingw64/bin` 中 (2认同)

Von*_*onC 21

zip命令可以从GoW(Gnu On Windows)安装.man没有提供(太大).

然而需要注意的是,如果你想要添加zip从GOW命令,还是整个GOW系统必须下载并安装.然后,您可以从bin目录中删除其他命令,但请确保在目录中保留所需的dll.


Tun*_*ung 14

我很高兴分享我在这个问题上的经验,自从我和Groovy一起玩的第一天起,我已经知道这两年了.我的方法需要git在Windows操作系统中安装Windows.

我可以跟进修复此问题的步骤:

  • 官方网站下载并安装7z-zip .默认情况下,它7z作为我的案例安装在Windows 10中的目录下.
  • 在管理员权限下运行git Bash并导航到该目录zip,即可运行该命令/c/Program Files/7-Zip
  • 然后按照sdkman网站上提供的说明进行操作(如果你试图/c/Program Files/Git/mingw64/bin在Windows中安装我猜.否则,请忽略此步骤).

我很确定它可以帮到你很多.相信我!


Vik*_*ate 13

Windows上,您可以使用tar而不是zip

tar -a -c -f output.zip myfile.txt
Run Code Online (Sandbox Code Playgroud)

这与

zip output.zip myfile.txt
Run Code Online (Sandbox Code Playgroud)

无需安装任何外部 zip 工具。

  • 超级想法,非常聪明。这有效。 (2认同)

nok*_*eng 10

向gitbash添加7-zip很容易。

  1. 在Windows上安装7-zip。
  2. 加上7-ZIP文件夹(C:\Program Files\7-Zip)到PATH
    gitbashEXP: export PATH=$PATH:"C:\Program Files\7-Zip"临时
    在Windows上,添加PATH像下面的图像(永久

在此处输入图片说明

  1. 将7z.exe的副本复制为zip.exe
  2. 再次重新打开gitbash。完成了!

如果您跳过第3步,则仍然可以调用zip命令7z代替zip

我刚刚做到了!在我的笔记本电脑上。

结论:Gitbash是基于Windows Path运行的,我认为您可以运行添加到Windows PATH中的任何命令。
顺便说一句,如果您尝试此操作,请不要忘记给出结果反馈。

  • 这对我有用,但是没有发现步骤3的需要,我改用了`7z`命令。例如:`7z a -r zipped_filename.zip *` (2认同)

STE*_*EEL 9

在 Windows 上安装 SDKMAN 的步骤

以管理员权限运行Windows 终端。打开里面的 git bash 。(Ctrl + Shift + 4)

在此输入图像描述

winget install -e --id GnuWin32.Zip
mkdir ~/bin
cp /usr/bin/unzip ~/bin/zip
curl -s "https://beta.sdkman.io" | bash
source "${HOME}/.sdkman/bin/sdkman-init.sh"
sdk selfupdate force
Run Code Online (Sandbox Code Playgroud)

之后就可以像这样安装Java了。

sdk install java 17.0.2-open
Run Code Online (Sandbox Code Playgroud)

完毕 !:)

  • 正在努力让 zip 在路径上可用,因为它没有与 Git bash 一起安装。这些命令立即解决了问题,谢谢 (2认同)

yuk*_*ane 8

git-archive,没有任何安装准备,可以创建zip-archive.

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
Run Code Online (Sandbox Code Playgroud)

以下脚本可能是可用的: 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
Run Code Online (Sandbox Code Playgroud)


小智 7

I use choco as my Windows Package Manager.

I install 7zip with choco using PowerShell (you must be admin to use Choco)

PS > choco install 7zip.install
Run Code Online (Sandbox Code Playgroud)

Open another gitbash Terminal and locate the 7z.exe executable

$ which 7z
/c/ProgramData/chocolatey/bin/7z
Run Code Online (Sandbox Code Playgroud)

Do a straight copy of 7z.exe to zip.exe and voila

$ cp /c/ProgramData/chocolatey/bin/7z.exe /c/ProgramData/chocolatey/bin/zip.exe
Run Code Online (Sandbox Code Playgroud)

  • 为什么将 7z 重命名为 zip. 7z 的命令行用法与 zip 不同。 (2认同)

Dyl*_*kby 5

您可以通过映射man <command>到外壳中的一小部分人的行为来模拟<command> --help | less

不幸的是,在我的机器上,bash别名不会在位置参数中添加标志,它会尝试将标志作为命令运行并失败(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"
Run Code Online (Sandbox Code Playgroud)

它并没有为您提供完整的手册页,但是,如果您要查找的只是命令及其标志的基本信息,那么这可能就是您所需要的。


wis*_*cky 5

您可以从http://gnuwin32.sourceforge.net/packages.html安装单独的 GNU 工具,例如zip.

然后添加"/c/Program Files (x86)/GnuWin32/bin"PATH您的启动脚本一样.profile.bash_profile.bashrc,等。


Zar*_*rtc 5

ln -s /mingw64/bin/ziptool.exe /usr/bin/zip