我想知道如何处理名称为标志的文件,如“-a”、“-f”等。我不能将它们作为参数传递给rm
或之类的程序ls
,因为它们被解释为标志,并且正在执行rm *
或ls *
只是运行那些带有文件名标志的程序(出于显而易见的原因)。如何在程序参数中将标志作为普通文件名传递?
问问题
90 次
1 回答
8
一个常见的技巧是使用前缀./
:
edd@max:/tmp$ touch ./-a ./-b ./-c
edd@max:/tmp$ ls -l ./-*
-rw-rw-r-- 1 edd edd 0 May 22 21:07 ./-a
-rw-rw-r-- 1 edd edd 0 May 22 21:07 ./-b
-rw-rw-r-- 1 edd edd 0 May 22 21:07 ./-c
edd@max:/tmp$ rm ./-*
edd@max:/tmp$ ls -l ./-*
ls: cannot access ./-*: No such file or directory
edd@max:/tmp$
于 2013-05-23T02:08:31.867 回答