私は "git bash
" をWindowsで使用しています。つまり、統合されたgit
を介したWindowsの場合はbash
です。どうやら、MINGW/MSYSの基盤を使用しているようです。 (@ VonCからの更新:今では msys2を使用msysgitは廃止されている 2015年第4四半期以降。 )
したがって、すでに多くのMSYSツールがインストールされています-awk
からzcat
まで。しかし、複数のファイルをZipファイルに圧縮するman
コマンドとZip
がありません(unzip
が存在します!)。
どこからインストールできますか? MINGWシステムの別のコピーをインストールしたくない! git bash
インストールにいくつかのプリコンパイル済みツールを追加するだけの方法はありますか?
Zip
コマンドは、 GoW(Gnu On Windows) からインストールできます。 man
は提供されません(大きすぎます)。
ただし、onlyがGoWからZip
コマンドを追加する場合でも、GoWシステム全体はダウンロードしてインストールしました。その後、bin
ディレクトリから他のコマンドを削除できますが、ディレクトリに必要なdllを保持してください。
この問題に関する私の経験を共有できてうれしいです。Groovyでプレイした最初の日から2年間は知りませんでした。私のメソッドには、Windows OSにインストールされたWindowsのgit
が必要です。
これらの手順は、7z
コマンドラインユーティリティをインストールするためのもので、Zip
とは少し動作が異なります。
/c/Program Files/7-Zip
ディレクトリにインストールされます。/c/Program Files/Git/mingw64/bin
ディレクトリに移動します。ln -s "/c/Program Files/7-Zip/7z.exe" 7z.exe
コマンドを実行できます私はそれがあなたを大いに助けると確信しています。私を信じて!
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
7-Zipをgitbashに追加するのは簡単です。
C:\Program Files\7-Zip
)をPATHに追加しますgitbash
exp:export PATH=$PATH:"C:\Program Files\7-Zip"
(一時的)ステップ3をスキップしても、Zip
の代わりに7z
としてZipコマンドを呼び出すことができます
私はちょうどそれを機能させました!私のラップトップで。
結論:GitbashはWindows Pathをベースに実行しています。WindowsPATHに追加したコマンドを実行できると思います。
ちなみに、これを試す場合は、結果のフィードバックを忘れないでください。
_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"
_
完全なmanページを入手することはできませんが、探しているのがコマンドとそのフラグに関する基本的な情報だけである場合は、これで十分です。
個別のGNUツールを http://gnuwin32.sourceforge.net/packages.html からインストールできます(Zip
など)。
次に、スタートアップスクリプトのPATH
に"/c/Program Files (x86)/GnuWin32/bin"
を追加します.profile
、.bash_profile
、.bashrc
など.
もう1つ、わずかに異なる、Windowsでのgit bashのZipのインストール手順を示します。
Zip-3.0-bin.Zip
bin
フォルダーで、ファイルZip.exe
。C:\Program Files\Git\mingw64\bin
)bzip2-1.0.5-bin.Zip
bin
フォルダーで、ファイルbzip2.dll
bzip2.dll
を「mingw64」のbinフォルダー(同じフォルダー-C:\Program Files\Git\mingw64\bin
)ここにあなたが従うことができるステップがあります。
次のリンクに移動します https://sourceforge.net/projects/gnuwin32/files/
不足しているコマンドを見つけます。ZipコマンドにはZipとbzip2が必要です。 Zipコマンドはbzip2.dllに依存して実行されるためです。そうしないと、「共有ライブラリのロード中にエラーが発生しました:?:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません」というエラーが表示されます。
ダウンロードしたファイルを解凍するここでは、binフォルダーにある「Zip.exe」の「Zip-3.0-bin.Zip」と「bzip2.dll」の「bzip2-1.0.5-bin.Zip」をダウンロードしています。 /bin/.exe
コマンドexeファイルをgit-bashフォルダーにコピーするここでは、「Zip.exe」と「bzip2.dll」を\ Git\usr\binにコピーしています。
参照リンク https://ranxing.wordpress.com/2016/12/13/add-Zip-into-git-bash-on-windows/
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.Zipfiles...
ただし、ディレクトリでは機能しません。 Perl
とすべての必要なモジュールはGit for Windowsインストールに既に存在するため、何もインストールする必要はありません。
man
に関して、少なくともgit
については、次のように呼び出されるドキュメントがあります。
git option --help
デフォルトのブラウザで開きます。
CygWinもインストールする場合は、GitBashパスにCygWinパスを追加できます。Zipがあれば、機能します。例えば追加
PATH=$PATH:/c/cygwin/bin
export PATH
あなたの.bashrc
;注:最初にではなく、示されているようにパスのendに配置します。
CygWinにはUIベースのインストーラーがあるため、Zipやmanなどのアプリケーションを簡単に追加または削除できます。
あなたは言って、それぞれのウィンドウのパスを把握することができます
`cygpath -w /bin`
それぞれのシェルで。