Я дивно працюю


2

Я звик набирати текст ls Docі пару разів клацати, щоб завершити ls Documents/.

Однак тепер мій ls заповнює той самий оператор ls Documentsз пробілом в кінці Documents, тому я можу використовувати його, щоб знайти свій шлях через дерево файлів.

Це почалося сьогодні. Будь-які ідеї, чому і що важливіше, як виправити ?

Редагувати

Це трапляється для будь-яких і ВСІХ каталогів. Документи були прикладом. $CDPATHпусто.

complete | grep lsповертається complete -o default -F _longopt lsяк єдина відповідна відповідь.

locate Documents з'ясовує речі в / usr / lib /


Чи є файл у поточному каталозі (з якого ви намагаєтеся виконати комплект із) під назвою "Документи"? Чи діє він так само в / для інших каталогів?
Ƭᴇcʜιᴇ007

Так, він поводиться рівномірно у кожній папці. Документи - це папка, файлів, що мають аналогічне ім'я, немає. Це також не є результатом виникнення проблем .bashrc. Я не вносив жодних змін до нього і тимчасово перемістив його з шляху, але це не допомогло
EricR

Відповіді:


2

Є кілька речей, які можуть статися.

1) зробіть complete | grep lsі подивіться, чи є якісь спеціальні доповнення для ls. Можливо, існує код, який змінює те, що ви очікуєте зробити

2) do echo $CDPATHЦя змінна - це список спеціальних каталогів, в яких буде шукати bash за межами локального каталогу cd. Я не впевнений, чи використовує вона це, але варто спробувати.

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

EDIT

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


Спроба всього цього. Я не впевнений, чого слід очікувати від completeрезультатів, і відредагував своє запитання, щоб це відобразити.
EricR

Дуже дякую. Це вирішило це. Тепер, щоб зрозуміти, де змінилося це налаштування.
EricR

@EricR шукайте пакет bash_completion, можливо, він встановлений. Перевірте / etc / profile та /etc/profile.d
Rich

Я пишу це для подальшого ознайомлення. Я нарешті знайшов рядок у / etc / bash_completion, який вказав, -F _longoptщо я змінив, щоб прочитати, -fщо повністю вирішує мою проблему
EricR

1

Виходячи з Вашого опису, єдиний сенс, який має сенс, полягає в тому, що деякий час у минулих Документах було символьним посиланням, яке вказувало на деякий каталог, а сьогодні Документи все ще є символьним посиланням, але вказує на одне з наступних:

  1. те, що не є каталогом.
  2. те, чого більше не існує.
  3. те, до чого ви не можете отримати доступ, щоб визначити, чи це каталог чи ні.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.