Windowsのgit bashでは、chmodによる実行権限の付与ができません。
これは、NTFSやFATがそもそも実行権限なる属性をサポートしてないからとのこと。
git bashでは、これに対処するため、対象ファイルの中身によって実行権限を自動判別します。
git bashが、対象ファイルを実行権限のあるファイルとして判別する条件は下記です(他にもあると思われ。判明したら増やします)
- 対象ファイルの拡張子がexe/com/lnk
- 対象ファイルが、シェルスクリプトである(1行目が「#!」で始まる)
因みに、ls上で実行権限なし(644等)の表示でも、
テキストファイルであれば、構わず叩くことで実行可能です(コマンド補完はききません)。
echo 'hogehoge'
$ ls -l hobe.sh -rw-r--r-- 1 xxxxxxxxxxxxxxxxx hoge.sh ←実行権限無いけど・・・ $ ./hoge.sh hogehoge ←実行できる