methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

msysのls.exeで日本語ファイル名を…

lsで日本語ファイル名があるディレクトリを表示してみると、日本語が化ける。
これは、lsのデフォルトの動作が、出力先がターミナルだった場合にコントロールキャラクタを表示しないようにしているから。
これをやめさせるオプションは、--show-control-chars。

なので、$HOME/.profileに、以下のように書いておくと、MSYSのbashをcmd.exeで常用できる。*1

alias ls='ls --color=auto --show-control-chars'
alias ll='ls -l'
alias l='ls -CF'

ついでに、コマンドプロンプトに入るときに、

doskey ls=ls --color=auto --show-control-chars $*

としておくと、コマンドプロンプトからdirと間違ってlsしても大丈夫になる。

*1:rxvtだと、日本語環境ではフォントの問題も面倒だし、色を弄るのも面倒なので、MSYSはcmd.exe上で動かすことをお勧めする。