ls - 在某些目录中不起作用

时间:2017-09-09 18:07:06

标签: linux macos terminal directory ls

下午好,我最近下载了this .bash_profile设置,但在终端中运行ls命令时遇到了一个小问题(Mac OS X - Sierra,10.12.6) )。

Error 1

ls: illegal option -- - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

正如你所看到的,我没有别名,而且应该是ls(至少我希望如此)。

这里发生了什么?我应该做些什么来试图纠正这种情况?

1 个答案:

答案 0 :(得分:3)

问题在于*在shell中的工作方式。

有些人认为当你编写ls *时,shell将运行ls传递通配符,该命令将列出所有文件。但实际上是*展开到所有文件的列表并将其传递给ls的shell。

TL; DR; 您的目录名称以-开头! (我认为它的名字只是-)。因此,当您运行ls -d */时,它会扩展为ls -d -/ bar/ muz/ ...。您可以使用echo ls -d */

查看实际展开

解决方案:写ls -d -- */--将告诉命令不要解释以-作为选项开头的任何进一步命令,而是作为文件名。