虽然我们使用*来表示 0 个或多个前面的字符grep,*.c但当我们将它与ls诸如ls *.c. 有人能说出*在这两种情况下的使用有何不同吗?
在过去的 5 年里,我一直使用 linux 作为我执行科学计算的日常操作系统。我最近的工作给了我一台 Mac,我将成为未来几个月的主要用户。我一直在 Mac 上的 Free-BSD bash 环境和我习惯的 GNU 环境之间遇到冲突,无论是我设置的 bash 脚本还是我尝试运行 bash 命令时(coreutils,findutils, 等等)。我不想完全切换到 Free-BSD 实用程序,因为我所有的其他计算机以及我们的 HPC 都使用带有 GNU 实用程序的 linux。我想避免必须维护两组 bash 脚本,并且还必须记住两个系统之间不同标志和功能的细微差别。我也不想破坏其他用户将使用的 Mac 的任何 gui 实用程序等(在接下来的几个月内或在将其提供给其他人时)。此外,对此相关问题的回答警告不要将 Mac Free-BSD 实用程序完全替换为 GNU 实用程序。
是否可以安装/设置单独的 bash 环境以仅使用 GNU 实用程序,同时保留系统 Free-BSD 实用程序? 我期望最有希望的选项是将我的$PATH变量设置为指向一个包含 GNU 可执行文件(带有它们的标准名称)的目录,同时忽略 Free-BSD 的。我如何将其应用于我的跨平台 bash 脚本?是否有值得考虑的替代方案?