我想知道如何处理名称为标志的文件,如“-a”、“-f”等。我不能将它们作为参数传递给程序,如 rm
或 ls
,因为它们被解释为标志,并且执行 rm *
或 ls *
只是运行那些带有文件名标志的程序(原因很明显) .如何在程序参数中将标志作为普通文件名传递?
最佳答案
一个常见的技巧是使用./
作为前缀:
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$
关于linux - 如何处理名称为标志的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704515/