gpt4 book ai didi

macos - 如何在 macOS 上安装和使用 GNU "ls"?

转载 作者:行者123 更新时间:2023-12-03 09:47:00 37 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我在关注 this更新我的 bash 的文章。我真的很想更新我的 bash 版本,以便可以使用 --group-directories-first ls 的选项命令。

到目前为止,我已经从链接的文章中完成了以下工作:

  • 我成功执行了brew install bash命令并下载新的 bash。根据文章,我可以验证 /usr/local/bin/bash --version在我的机器上显示以下内容:

    GNU bash, version 5.0.11(1)-release (x86_64-apple-darwin18.6.0) Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

    This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


  • 我完成了sudo vim /etc/shells命令,编辑文件以包含新下载的 bash。这是它的样子:

  • enter image description here
  • 我执行了chsh -s /usr/local/bin/bash将新的 bash 设置为默认值。

  • 但是,即使我关闭终端并重新启动它,我也不确定我是否正在使用新终端。这是因为:
  • 当我执行 bash --version我得到以下信息:

    GNU bash, version 5.0.11(1)-release (x86_64-apple-darwin18.6.0) Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

    This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


  • 但是当我运行 echo $BASH_VERSION我得到相反的结果( 3.2.57(1)-release )。不是老版本吗?
  • 此外,新的“组目录优先”命令仍然不起作用。运行 ls --group-directories-first 时出现以下错误:

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



    任何帮助或指示将不胜感激。

    谢谢!

    最佳答案

    这与 bash 无关.命令 ls不是 bash 的内置函数.
    macOS 基于 Unix 操作系统。它的一些基本命令是 BSD 风格的。 --group-directories-first您想要的选项在 GNU ls 中可用只要。你所需要的只是一个 GNU 风格的 ls .
    解决方法:安装coreutils , 其中 GNU ls已经包括了。

    brew install coreutils
    将以下代码添加到 ~/.bash_profile , 优先处理 ls command 和其他 GNU 风格的命令,而不是 macOS 中内置的 BSD 风格的命令。
    # Make all GNU flavor commands available, may override same-name BSD flavor commands
    # For x86 Mac
    export PATH="/usr/local/opt/coreutils/libexec/gnubin:${PATH}"
    export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:${MANPATH}"

    # For M1 Mac
    export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:${PATH}"
    export MANPATH="/opt/homebrew/opt/coreutils/libexec/gnuman:${MANPATH}"
    如果你只想要 GNU ls但不是其他 GNU 风格的命令。以上内容不要添加,而是在 ~/.bash_profile中创建一个别名.
    # For x86 Mac
    alias ls="/usr/local/opt/coreutils/libexec/gnubin/ls"

    # For M1 Mac
    alias ls="/opt/homebrew/opt/coreutils/libexec/gnubin/ls"
    以下是 coreutils 带来的所有命令.
    ❯ ls /usr/local/opt/coreutils/libexec/gnubin
    '[' cat cksum dd echo fmt install ls mv od printf rmdir sha384sum split tac tr unexpand wc
    b2sum chcon comm df env fold join md5sum nice paste ptx runcon sha512sum stat tail true uniq who
    base32 chgrp cp dir expand groups kill mkdir nl pathchk pwd seq shred stdbuf tee truncate unlink whoami
    base64 chmod csplit dircolors expr head link mkfifo nohup pinky readlink sha1sum shuf stty test tsort uptime yes
    basename chown cut dirname factor hostid ln mknod nproc pr realpath sha224sum sleep sum timeout tty users
    basenc chroot date du false id logname mktemp numfmt printenv rm sha256sum sort sync touch uname vdir

    关于macos - 如何在 macOS 上安装和使用 GNU "ls"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57972341/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com