コマンド操作をしていた時に、
ハイフンで始まるディレクトリが作成されてしまって、
削除に困ったので、削除方法を残しておきます。
時系列に書いてみます。
< 複数階層のディレクトリを作ろ。
$ mkdir conf.d/hosts -p
mkdir: conf.d: No such file or directory
< なんかエラーがでた。
mkdir -p conf.d/hosts と書かないといけなかった。
$ mkdir -p conf.d/hosts
< 作成できたはず。
見てみよう。
$ ls -l
total 0
drwxr-xr-x 2 nonichi staff 64 3 30 11:12 -p
drwxr-xr-x 3 nonichi staff 96 3 30 11:12 conf.d
< あれ?
-p ってディレクトリができてる・・・
最初のmkdirコマンドでできちゃったんだな。。
削除しておこう。
$ rm -rf "-p"
rm: illegal option -- p
usage: rm [-f | -i] [-dPRrvW] file ...
unlink file
< 削除できない・・・
manコマンドで、削除する方法をしらべよう。。。
$ man rm
NOTE
The rm command uses getopt(3) to parse its arguments, which allows it to accept the `--' option which will cause it to stop processing flag options at that
point. This will allow the removal of file names that begin with a dash (`-'). For example:
rm -- -filename
The same behavior can be obtained by using an absolute or relative path reference. For example:
rm /home/user/-filename
rm ./-filename
< ここかな。直訳すると・・・
rmコマンドは、引数をパースするために、getopt(3) をつかう
「–」オプションは許可する、このポイントで実行フラグオプションを止めることを
ダッシュで始まるファイル名を削除することを許可する
例: rm — -filename
同じ振る舞いを絶対パスや相対パスを使っても得られる
例: rm /home/user/-filename, rm ./-filename
うん、これっぽい。「–」をつけてやってみよう。
$ rm -r -- -p
< 削除できた!
よかった。よかった。
以上です。
コメントを書く