为什么"noclobber"出现在 bash 命令参数中



〜/path/path/path/path/path的名称以前缀开头的文件夹,我需要经常访问它们。我正在尝试在.bashrc中创建一个将制作"前缀示例"运行命令" CD〜/PATH/PREFIXEXAMPLE"的快捷方式。

我在功能和别名时遇到了相同的问题:

function prefix(){ "cd ~/path/prefix$1"; }
alias prefix="cd ~/path/prefix$1"

当我键入"前缀4"(确实存在文件夹路径/prefix4)时,我会得到:

bash: cd: path/prefixnoclobber: No such file or directory

我在这台计算机上没有管理特权,所以我无法更改某些内容。

.bashrc已经包含了很多东西,但是唯一相关的东西似乎是"设置Noclobber"。我敢肯定,用字符串" Noclobber"代替参数不是Noclobber Switch功能的一部分,并且评论此开关没有效果。

别名命令中的 $1被替换为设置脚本的第一个参数恰好是(显然是" noclobber"),而不是对别名/函数的参数。您需要做两件事:

  1. 摆脱别名。别名不够灵活,无法做您想做的事,但是别名 以相同名称覆盖其他任何东西(因此干扰了更好的解决方案)。
  2. 使用函数:

    prefix() { cd ~/path/prefix"$1"; }
    

相关内容

  • 没有找到相关文章

最新更新