有些文件的名称以“ - ”开头,例如“-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
如何解决这个问题?
答案 0 :(得分:4)
使用--
:
ls -- *.png
它表示以下内容不是选项。
--
划分选项列表。后来的参数(如果有的话)被视为 操作数,即使它们以-
开头。例如,sort -- -r
从名为-r
的文件中读取。
答案 1 :(得分:4)
使用
ls -- *.png
或
ls ./*.png
双短划线是GNU工具中常用的选项,用于表示选项的结束:以dash开头的任何后续单词都是一个简单的参数。
rm
的工作方式相同。