[小ネタ][bash] ハイフンで始まる名前のファイルをmvする

[小ネタ][bash] ハイフンで始まる名前のファイルをmvする
shell htop

皆さんこんにちは。よくコマンドの引数として「–hogehoge」なんてつけることがあるかと思いますが、知らない間にこの引数をファイルとしてブチまけてしまうことがたまにあります。なので私はホームディレクトリを汚さないよう、 ${HOME}/tmp みたいなブチまけてもよいディレクトリにcdして作業するクセをつけています。

さて、そんなある日、ブチマケを発見してしまいまして・・・

$ ls
--hoge

こんな風に、ハイフンで始まるファイルがあって名前を変更したくても・・・

$ mv --hoge HOGE
mv: オプション '--hoge' を認識できません
Try 'mv --help' for more information.

そんな時は慌てず騒がず

$ mv ./--hoge HOGE
$ ls
HOGE

mvコマンドの後に続くハイフンがコマンドラインオプションとして解釈されてしまうようです。なので、「./」をつけて絶対パスで指定してあげればファイル名だと解釈してくれます。

ね、簡単でしょう?

[amazonjs asin=”4873112540″ locale=”JP” title=”入門bash 第3版”]

[小ネタ][bash] ハイフンで始まる名前のファイルをmvする」への1件のコメント

  1. なるほど、カレントディレクトリから指定すればええですね。
    私がいつもやってたのは、下記のように–でオプション打止め指定です。

    $ mv — –hoge HOGE

    引数に–を使うと、オプションはここで終了の意味になるようです。C言語のgetopt関数を使ってオプションを処理してる場合は、–でオプション打ち止めが使えるんじゃないですかね。