Работает странно
Я привык печатать 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
теперь ведет себя так, как вы ожидаете.
Исходя из вашего описания, единственный сценарий, который имеет смысл, состоит в том, что некоторое время в прошлых Документах была символическая ссылка, которая указывала на какой-то каталог, а сегодня Документы все еще являются символической ссылкой, но указывают на одно из следующего:
- то, что не является каталогом.
- то, что больше не существует.
- что-то, к чему у вас нет доступа, чтобы определить, является ли это каталогом или нет.