macOS:ls 命令停止工作

macOS:ls 命令停止工作

在我的 macOS (10.11.6) 终端上,我在 python 虚拟环境上进行了一些安装。之后我的ls命令停止工作。它给出了一个错误:

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

$ alias ls
alias ls='colourify ls --color'

答案1

ls哪个程序首先真正搞乱了我的cmd,是 python 吗?

您的ls命令未受影响。你的ls 别名最有可能来自错误的 Bourne Again shell 设置。

请注意,您的别名正在通过另一个名为 的别名ls运行名为 的命令。这来自grccolourifyRadovan Garabík 的通用调色剂,其 Bourne Again shell 别名(在grc.bashrc)和 Z shell 别名(在grc.zsh) 设置一个名为 的别名ls

在 rc 文件中的某个位置,您可以按照以下建议将这些别名添加到交互式 Bourne Again shell这个堆栈溢出答案

Z shell 别名是

别名 ls="grc --color=auto ls"
它将选项传递--colour-autogrc命令,该命令是采用该选项的命令。

然而,The Bourne Again shell 别名是

别名 ls='colourify ls --color'
(通过colourify别名)有效地

别名 ls='grc -es --colour=auto ls --color'
这是两个都ls通过着色器运行命令的输出试图让ls命令为其输出着色。

基本问题是这些 Bourne Shell 别名的作者 (这是 2016 年 5 月来自 Oracle 的 Isaias Piña)不适合在 Linux 操作系统以外的任何操作系统上运行 Bourne Again shell,可能希望如果您使用 MacOS,您会使用 Oh My Zsh 之类的东西。另一个问题是作者不允许对grc的输出进行着色ls,而是期望ls对自己的输出进行着色。

所以你有多种选择:

  • 找到添加这些别名的位置并修复 Isaias Piña 的错误别名,以便在 MacOS 上ls使用该选项。-G
  • 找到添加这些别名的位置并修复 Isaias Piña 的错误ls别名,使其不使用任何选项,而是依赖着色器的conf.ls文件来完成其实际工作;正如汤姆·穆德所说
  • 找到添加这些别名的位置,并ls完全删除 Isaias Piña 的错误别名,改用CLICOLOR环境变量进行着色;正如诺埃尔·B·阿隆索所做的那样
  • 找到添加这些别名的位置,并ls使用您自己的ls别名完全删除 Isaias Piña 的错误别名;正如阿瑟·尼斯尼维奇所做的那样
  • 完全卸载通用着色器。
  • 使用 Z 壳。

答案2

我刚刚将 iTerm2 更新到版本Build 3.0.14并遇到了这个问题。 coreutils 的命令ls不再在我的路径中。运行后:

brew install coreutils

打开一个新的外壳,问题就解决了。我的 ~/.bashrc 中有以下别名:

export LS_OPTS='--color=auto'
alias ls='ls ${LS_OPTS}'

答案3

macOS (Darwin)ls不支持该--color选项。您是否coreutils从 homebrew、macports 或 pkgsrc 之类的东西安装了另一个副本,但这些副本现在已消失或在您的 中更改了顺序PATH

答案4

Homebrew更新到新版本的grc 1.10_1,这个问题已经解决。

相关内容