名前の先頭にハイフンがついたファイルの取扱い方法
この前ubuntuでうっかり名前の先頭にハイフンがついたファイルを作成してしまいました。このファイル名を変更しようとして、mvコマンドを実行させると以下のような表示がでて変更できません。
$ mv -hoge foo mv: invalid option -- 'h' 詳しくは `mv --help' を実行して下さい。
つまり、ファイル名をオプションとして認識してしまうわけです。ハイフンをエスケープさせてみても結果は変わらず、その時はあきらめたのですが、今日調べるとITmediaの記事が見つかりました。
先頭にハイフンが付くファイルを削除できない - ITmedia エンタープライズ
まとめると、コマンドの引数に「--」があるとそれ以降はどんな文字もパラメータとしては認識されないということです。ですから、
$ mv -- -hoge foo $ mv -- foo -hoge
とすればちゃんと実行されます。それに、きちんとパスを指定してあげても大丈夫みたいです。
$ mv ./-hoge foo $ mv foo ./-hoge