ls 工作异常

ls 工作异常

我习惯于打字ls Doc,然后按几次制表键来完成ls Documents/

ls Documents但是,现在我的 ls 正在用 Documents 末尾的空格完成相同的语句,因此我可以使用它来查找文件树。

今天开始发生这种情况。你知道原因吗?更重要的是,怎么修

编辑

任何目录和所有目录都会发生这种情况。Documents 就是一个例子。$CDPATH为空。

complete | grep ls返回complete -o default -F _longopt ls唯一相关的答案。

locate Documents在 /usr/lib/ 中出现内容

答案1

有几件事可能会发生。

1)complete | grep ls看看 ls 是否有任何特殊的补全。可能有一些代码改变了你期望补全做的事情

2) doecho $CDPATH此变量是 bash 将在本地目录之外查找的特殊目录列表cd。我不确定 ls 是否使用它,但值得一试。

您还可以尝试locate Documents查看是否找到它可能试图引用的目录。

编辑

看起来您正在使用 bash_completion 包。当您要求完成时,它会尝试运行函数 _longopt。尝试complete -f ls看看ls现在的行为是否符合您的预期。

答案2

根据您的描述,唯一有意义的情况是,过去某个时间 Documents 是一个指向某个目录的符号链接,而今天 Documents 仍然是一个符号链接,但指向以下之一:

  1. 不是目录的东西。
  2. 不再存在的事物。
  3. 您无法充分访问某些内容来确定它是否是目录。

相关内容