2

Я привык набирать ls Doc и пару раз нажимать на табуляцию, чтобы завершить работу с ls Documents/ .

Тем не менее, теперь мой ls завершает ту же самую инструкцию для ls Documents с пробелом в конце Documents, так что я могу использовать его, чтобы найти свой путь через дерево файлов.

Это начало происходить сегодня. Есть идеи почему и что важнее, как исправить?

редактировать

Это происходит для ЛЮБЫХ и ВСЕХ каталогов. Документы были примером. $CDPATH пуст.

complete | grep ls возвращает complete -o default -F _longopt ls в качестве единственного соответствующего ответа.

locate Documents в каталоге /usr /lib /

2 ответа2

2

Есть пара вещей, которые могут происходить.

1) сделать complete | grep ls и посмотрите, есть ли специальные дополнения для ls. Там может быть код, который меняет то, что вы ожидаете, чтобы завершить делать

2) do echo $CDPATH Эта переменная представляет собой список специальных каталогов, которые bash будет искать вне локального каталога для cd . Я не уверен, что ls использует это, но стоит попробовать.

Вы также можете попробовать locate Documents и посмотреть, найдете ли вы каталог, на который он может ссылаться.

РЕДАКТИРОВАТЬ

Похоже, вы используете пакет bash_completion. Он пытается запустить функцию _longopt, когда вы запрашиваете завершение. Попробуйте complete -f ls и посмотрите, будет ли ls себя так, как вы ожидаете.

1

Исходя из вашего описания, единственный сценарий, который имеет смысл, состоит в том, что некоторое время в прошлых Документах была символическая ссылка, указывающая на некоторый каталог, а сегодня Документы все еще являются символической ссылкой, но указывают на одно из следующего:

  1. что-то, что не является каталогом.
  2. то, что больше не существует.
  3. что-то, к чему у вас нет доступа, чтобы определить, является ли это каталогом или нет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .