If you're anything like me you'll find your directories liberally scattered with some pretty strange directory and file names.$ ls -la -rw-r--r-- 1 gypsydave5 1482096370 647 11 Oct 20:15 :w drwxr-xr-x 2 gypsydave5 1482096370 68 10 Feb 08:55 -p/ -rw-r--r-- 1 gypsydave5 1482096370 2900 11 Oct 20:15 \(
Hopefully you're nothing like me and you never get this, but I'm both a sloppy and impatient typist and so I willoccasionally often mash the keyboard in Vim and name a file after the write command, or somehow create a directory called -p because I was using the recursive flag on mkdir
On that subject, let's try and get rid of the -p directory:$ rm -rf -p rm: illegal option -- p usage: rm [-f | -i] [-dPRrvW] file ... unlink file
Hmmm, that sucks. What about...$ rm -rf "-p" rm: illegal option -- p usage: rm [-f | -i] [-dPRrvW] file ... unlink file
Boo. Happily there's a *nix convention to help with these situations: -- . Double-dash tells the command you're running that everything that comes after it is not to be treated as a command option, but is instead a filename. So:$ rm -rf -- -p $ ls -la -rw-r--r-- 1 gypsydave5 1482096370 647 11 Oct 20:15 :w -rw-r--r-- 1 gypsydave5 1482096370 2900 11 Oct 20:15 (
This behaviour is implemented in most of the command line tools you'll use on a *nix system - it's useful to know.
本文系统（linux）相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统