最近 coreutils
をバージョンアップしたら gnubin/ls
が勝手にファイル名をクオートして出力するようになって、インデント崩れて見づらいのでファイル名はそのまま出力されるよう ls
の alias
を20年ぶりくらいに変更することにした。
勝手クオートの抑制は -N
オプションを付ければ OK だが、ついでにこれも長年気になっていた --time-style
オプションも常用することにしよう。
ただし、bashrc
とかは github で管理してて色んな環境で使いまわしてて環境によってエラーが出るのは困るので、ついでにスペックをチェックしつつ最適な alias
が設定されるようにしておこう。
で出来たのがこれ
~/.bashrc
# 環境に合わせて出来るだけ好みのls出力にする
if ls -d -N >/dev/null 2>&1; then
# 最近の gnubin/ls が勝手にファイル名をクオート出力してくるのを抑止
alias ls='ls --color --time-style +%Y-%m-%d\ %H:%M:%S.%3N -N'
elif ls -d --time-style +%Y-%m-%d\ %H:%M:%S.%3N >/dev/null 2>&1; then
# デフォの時間表示は見難いのでISOぽくする(full-iso,long-iso,isoは帯に短し襷に長しなのでカスタム)
alias ls='ls --color --time-style +%Y-%m-%d\ %H:%M:%S.%3N'
elif ls -d --color >/dev/null 2>&1; then
# せめて色だけでも…
alias ls='ls --color'
fi
BEFORE/AFTER
AFTER (ls --color --time-style +%Y-%m-%d\ %H:%M:%S.%3N -N
)
うむ、いい感じ😄