下午好,我最近下载了this .bash_profile设置,但在终端中运行ls
命令时遇到了一个小问题(Mac OS X - Sierra,10.12.6) )。
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
正如你所看到的,我没有别名,而且应该是ls(至少我希望如此)。
这里发生了什么?我应该做些什么来试图纠正这种情况?
答案 0 :(得分:3)
问题在于*
在shell中的工作方式。
有些人认为当你编写ls *
时,shell将运行ls
传递通配符,该命令将列出所有文件。但实际上是将*
展开到所有文件的列表并将其传递给ls
的shell。
TL; DR; 您的目录名称以-
开头! (我认为它的名字只是-
)。因此,当您运行ls -d */
时,它会扩展为ls -d -/ bar/ muz/ ...
。您可以使用echo ls -d */
解决方案:写ls -d -- */
。 --
将告诉命令不要解释以-
作为选项开头的任何进一步命令,而是作为文件名。