ファイル名にスペースを入れた日の悲劇

シェルはスペースを見つけると、そこで容赦なく切り分ける
シェルはスペースを見つけると、そこで容赦なく切り分ける

mv my file.txt backup/ と打ったらどうなるか? ターミナルは my と file.txt を別々の引数だと解釈します。つまり「my と file.txt を backup/ に移動」という意味になってしまう。 これはターミナルあるあるの悲劇。スペースは人間にとっては「名前の一部」でも、シェルにとっては「引数の区切り」なんです。

対処法は簡単。クォートで囲むか、バックスラッシュでエスケープする。 mv "my file.txt" backup/ または mv my\ file.txt backup/。 でも本当のプロは、最初からスペースを使わない。ファイル名には -(ハイフン)か _(アンダースコア)を使うのが現場の暗黙のルール。my-file.txt や my_file.txt なら、何も心配いりません。

ファイル名のつけ方ひとつで、未来の自分を救える。地味だけど、大事な習慣です。