gnome-screenshot (スクリーンショット)を実行すると、保存ファイル名が Screenshot from 2017-06-26 14-47-25.png などのように
ファイル名にスペースが入ってしまう。
あとで、自分でファイル名を任意の名前に変更するのだが、mv コマンドでTABキーを使っていても扱いにくい。
そこで半角スペースを全て_アンダーバーに変更するスクリプトを作ってみました。
// 変更したいファイル名を指定 $ fix_blank.sh Screenshot from 2017-06-26 14-47-25.png mv Screenshot from 2017-06-26 14-47-25.png Screenshot_from_2017-06-26_14-47-25.png // ディレクトリ配下のファイルを一括変換 $ fix_blank.sh ~/Pictures/ mv Screenshot from 2017-06-26 14-47-25.png Screenshot_from_2017-06-26_14-47-25.png
ミソは、 IFS=$’\n’; で
デリミタの環境変数 IFS に、デリミタは、改行コードですよと設定してあげることです。
そうしないと空白スペースをデリミタと判断してしまい、ファイル名の変更がうまく行えません。
fix_blank.sh
#!/bin/bash IFS=$'\n'; if [ -f "$1" ]; then NEWFILE=`echo $1| sed -e 's/ /_/g'`; echo "mv $1 ${NEWFILE}" mv "$1" ${NEWFILE} elif [ -d "$1" ]; then for file in $(ls $1); do NEWFILE=`echo $file| sed -e 's/ /_/g'`; if [ "${file}" != "${NEWFILE}" ]; then echo "mv ${file} ${NEWFILE}" mv "$1""${file}" ${NEWFILE}; fi done; fi