Як знайти різницю між правилами завершення bash на різних хостах?


3

На своєму настільному комп’ютері з відкритимвикористанням 13.1 я можу натиснути Tabщось подібне

ls *.dat[Tab]

і я отримую автоматичне завершення або за допомогою [TAB TAB] списку можливих збігів. Однак у моєму ноутбуці з відкритим використанням 13.2 це не працює. Лише загальні доповнення, як-от

ls file[Tab]

працює. Як я можу зробити так, щоб перший випадок також працював?

Відповіді:


3

Ви повинні перевірити версію свого bash-completionпакета, наприклад

dpkg -l bash-completion

і оновити його, можливо, у вас є стара версія.

Ви можете перевірити список усіх поточних процедур завершення, пов'язаних за допомогою:

complete -p

Щоб порівняти правила вручну, збережіть їх у файли та перевірте відмінності, наприклад

linux1$ complete -p > rules1.lst
linux2$ complete -p > rules2.lst
# Place two files in one folder. 
linux1$ diff -u rules1.lst rules2.lst

Щоб перевірити різниці вручну, подивіться:

  • /etc/bash_completion, /usr/share/bash-completion/bash_completionфайли,
  • файли в /etc/bash_completion.dпапці,
  • в папці користувача: ~/.bash_completion.

Дивитися також:


У ручному підході у мене немає / etc / bash_completion, / usr / share / bash-завершення / bash_completion або ~ / .bash_completion. А для /etc/bash_completion.d здається, що це сукупність правил для певних програм.
alexis

У відмінному випадку, після отримання відмінностей я повинен виконати відсутні лінії? Чому б просто не виконати rule1.lst (пройдене) безпосередньо в linux2?
alexis

Я думаю, вам слід знайти джерело цих пропущених рядків (наприклад /etc/bash_completion.d) і почати звідти. Якщо ці правила передбачені деякими сценаріями, знайдіть їх і перевірте, де вони належать (до яких пакетів, наприклад dpkg -S).
kenorb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.