Работает странно

Я привык печатать ls Docи добавив пару раз для завершения ls Documents/,

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

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

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

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

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

locate Documents находит вещи в /usr/lib/

2 ответа

Решение

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

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

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

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

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

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

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

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