如何使用通配符与名称以“ - ”开头的文件?

时间:2012-10-28 15:08:16

标签: macos bash shell

有些文件的名称以“ - ”开头,例如“-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

如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

使用--

ls -- *.png

它表示以下内容不是选项。

  

--
      划分选项列表。后来的参数(如果有的话)被视为        操作数,即使它们以-开头。例如,sort -- -r        从名为-r的文件中读取。

答案 1 :(得分:4)

使用

ls -- *.png

ls ./*.png

双短划线是GNU工具中常用的选项,用于表示选项的结束:以dash开头的任何后续单词都是一个简单的参数。 rm的工作方式相同。