如何隐藏鱼shell中带有特定扩展名的文件?

How to hide files with certain extensions in the fish shell?

我不想在鱼 shell 中执行 ls 命令时看到 .pyc 文件。使用 bash 我可以做一个别名。对于鱼,我尝试将以下内容放入 ~/.config/fish/config.fish

function ls
  command ls --hide="*.pyc"
end

但是没用。我得到

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

问题是您显然在使用 BSD ls 命令。在 Mac OS X 上我得到同样的错误,因为 /bin/ls 不识别任何长选项。在 OS X 上执行 brew install coreutils 以获得支持 --hide.

的 GNU ls

此外,您可能希望函数体是

command ls --hide="*.pyc" $argv

您还可以让您的函数根据诸如输出是否进入 tty 之类的事情而有不同的行为。这是我的函数:

function ls --description 'List contents of directory'
    set -l param --color=auto
    if isatty 1
        set param $param --indicator-style=classify
    end
    command ls $param $argv
end