先頭に--(ハイフン)が付いたファイルの消し方

--filenameなどの消し方

Hugoで作業していたところ、引数を間違ったのか、Viewモードでビルドしてしまったかで、 “–bind=192.168.1.1”のディレクトリが作成されてしまいました

失敗例

このような先頭に–(ハイフン)が付いたファイルやディレクトリを削除しようと、下記のようなコマンドでは消すことが出来ません

$ rm --bind=192.168.1.1  # 当然、引数と間違われるので☓
$ rm ”--bind=192.168.1.1”   ☓
$ rm  '--bind=192.168.1.1'   ☓

正しい消し方

コマンドの引数に”–“(ハイフン2つ)を挿入してファイル・ディレクトリを指定です

$ rm -rf -- --bind=192.168.1.1
$ rm -- <filename>
$ rm -r -- <directory>
リネームのmvでも同様
$ mv -- <filename>

コマンド引数”–“(ハイフン2つ)を挿入することにより、それ以降は全て文字として認識されるようです。

なので、rm -rf – –bindは、下記のような解釈となります

コマンド:rm
引数:-rf (強制ディレクトリ)
引数:-- (これ以降は引数が無効)
ディレクトリ名:--bind (全て文字として扱われる)

滅多に使わないコマンドの引数なので、結構忘れがち