4

有些文件的名称以“-”开头,例如“-1.png”、“-2.png”。我不能用通配符操作它们,因为这些名称被视为选项:

bash-3.2$ ls *.png
ls: illegal option -- .
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
bash-3.2$ rm *.png
rm: illegal option -- 1
usage: rm [-f | -i] [-dPRrvW] file ...
       unlink file

如何解决这个问题呢?

4

2 回答 2

6

要么使用

ls -- *.png

或者

ls ./*.png

双破折号是 GNU 工具中表示选项结束的常用选项:任何以破折号开头的后续单词都是一个普通参数。 rm以同样的方式工作。

于 2012-10-28T15:12:59.333 回答
4

使用--

ls -- *.png

它表明接下来的不是选项。

--
分隔选项列表。后面的参数(如果有)被视为操作数,即使它们以 . 开头-。例如,sort -- -r 从名为-r.

于 2012-10-28T15:12:51.593 回答