ファイル名やディレクトリ名にあるスペースの置換 †空白,半角スペースが入っているときに一括でリネームする方法について,意外と面倒臭かったのでメモ. 直下のディレクトリ名の置換 †直下のディレクトリ名を全部変える場合. for f in *\ *; do mv "$f" "${f// /_}"; done 上記は直下全てのディレクトリ名に半角スペースが含まれている前提. find . -maxdepth 1 -type d | grep " " | sed -e 's/.*/"&"/; p; s/ /_/g' | xargs -n2 mv (再帰的な)ファイル名の置換 †半角スペースを含んだ直下のファイル全てを,_ に置換してリネームする場合. find . -name "*.*" | grep " " | sed -e 's/.*/"&"/; p; s/ /_/g' | xargs -n2 mv 直下の全部のファイルを検索しなくていい場合は find の -maxdepth オプションを使ったり grep を追加したりして対象を減らす. |