macOS:ls 命令停止工作
在我的 macOS (10.11.6) 終端上,我在 python 虛擬環境上進行了一些安裝。之後我的
ls
命令停止工作。它給出了一個錯誤:$ ls ls: illegal option -- - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...] $ alias ls alias ls='colourify ls --color'
哪個程序首先真正搞砸了我的
ls
cmd,是python嗎?你的
ls
命令是不變的。您的ls
別名很可能來自錯誤的 Bourne Again shell 設置。請注意,您的別名正在通過另一個名為的
ls
別名執行名為 的命令。這來自Radovan Garabík 的 Generic Colourizer,其 Bourne Again shell aliases (in ) 和 Z shell aliases (in ) 設置了一個名為 的別名。grc``colourify
grc.bashrc
grc.zsh
ls
在某個地方,在一個 rc 文件中,您正在將這些別名添加到您的互動式 Bourne Again shell,按照Stack Overflow answer之類的建議。
Z shell 別名是
別名 ls="grc --color=auto ls"
它將
--colour-auto
選項傳遞給grc
命令,該命令是採用該選項的命令。但是,The Bourne Again shell 別名是
別名 ls='colorify ls --color'
這實際上是(通過
colourify
別名)別名 ls='grc -es --color=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 的錯誤
ls
別名以-G
在 MacOS 上使用該選項。- 找到添加這些別名的位置並修復 Isaias Piña 的錯誤
ls
別名,使其不使用任何選項,而是依靠著色器的conf.ls
文件來完成其實際工作;就像湯姆穆德一樣。- 找到添加這些別名的位置並
ls
完全刪除 Isaias Piña 的錯誤別名,CLICOLOR
改為使用環境變數進行著色;正如諾埃爾 B 阿隆索所做的那樣。- 找到添加這些別名的位置,並
ls
使用您自己的別名完全刪除 Isaias Piña 的錯誤ls
別名;正如亞瑟尼斯涅維奇所做的那樣。- 完全解除安裝 Generic Colourizer。
- 使用 Z 外殼。
我剛剛將 iTerm2 更新到版本
Build 3.0.14
並遇到了這個問題。coreutils的命令ls
不再在我的路徑中。執行後:brew install coreutils
並打開一個新的外殼,問題就解決了。我的 ~/.bashrc 中有以下別名:
export LS_OPTS='--color=auto' alias ls='ls ${LS_OPTS}'