【Shell】半角スペースが入ったファイル名の扱いに注意

カレントディレクトリの中に入っているファイル一覧を表示しようとしたとき、

以下のように記述すると、


dir="$(dirname $0)/*"
find $dir -maxdepth 0 -type f -iname '*.png' -o -iname '*.jpg' | while read file
do
    echo $file
done

半角スペースが入ったファイル名があると、

スペース単位でファイル名がスプリットされてしまった。

そこで、以下のように記述すると、


dir="$(dirname $0)/*"
find $dir -maxdepth 0 -type f -iname '*.png' -o -iname '*.jpg' | while read file
do
    echo "${file}"
done

半角スペースが入っていても、正常にファイルのパスが取得できた。

参考サイト