CygwinはWindowsと同様に大文字と小文字を区別します。たとえば、次のようになります。
$ touch ABC; rstr=$(openssl rand -base64 12); echo $rstr; echo $rstr > AbC; cat abc
dGRMOHqqoy0/nc96
dGRMOHqqoy0/nc96
$ ls | grep -i abc
ABC
ファイルまたはディレクトリ名の大文字と小文字は保存されますが、操作するときは無視されます。
ABC
をAbC
選択し、abc
同じファイルを選択します。
与えられたファイルパスまたはディレクトリパスの大文字と小文字を取得する安定した方法はありますか?別の名前で保存しますか?grepトリックは非常に迅速に非常に面倒になることができます。
ベストアンサー1
でzsh
このextendedglob
オプションをオンにすると、次のことができます。
$ set -o extendedglob
$ printf '%s\n' (#i)path/to/file
Path/to/FILE
path/to/file
ライブラリと一緒に受け取りました。
存在するksh93
:
$ printf '%s\n' ~(i)path/to/file
Path/to/FILE
(一致するものがない場合は展開されます。ksh93には対応するアイテムやオプションは~(i)path/to/file
ありませんが、一致するものがない場合はnullに拡張するために使用できます。)nomatch
failglob
~(Ni)path/to/file
とbash
オプションがオンの場合は、次のことができます。extglob
failglob
nocaseglob
$ shopt -s extglob failglob nocaseglob
$ printf '%s\n' @(path)/@(to)/@(file)
Path/to/FILE
それ以外の場合はextglob
これを行うことができますが、printf '%s\n' [p]ath/[t]o/[f]ile
確実に自動化することはより困難です。
(とにかくシェルはと同じことを行います。ls | grep -i
つまり、一致するファイルを見つけるにはディレクトリ全体の内容を読む必要がありますgrep -i
。