Ви можете комбінувати наявні історії та функції пошуку Bash. Натисніть, Ctrl-Rщоб почати поступовий зворотний пошук, а потім почніть вводити частину шляху, який, швидше за все, буде унікальним.
Ви можете продовжувати вводити літери до тих пір, поки не повернетеся до останньої cd
команди, що містить цей каталог, або ви можете натиснути Ctrl-Rще раз, щоб перейти назад в історію до наступної новітньої команди, що відповідає тому, що ви ввели раніше.
Я роблю це постійно.
Власне, я роблю це на крок далі. Як тільки я починаю відкривати послідовності команд стоять тримати в історії , але не варто передання скрипта, я починаю зчеплення їх з &&
і ;
комбінаторами , так що я можу зворотний пошук підрядка цього один довгі команди, хіт Enterі запустити всю послідовність в один раз.
Наприклад, ось як я будую та запускаю одну зі своїх програм під час розробки:
$ ( cd .. ; make install ) && ./start_my_program
Я роблю це з каталогу встановлення, який знаходиться внизу джерела каталогів верхнього рівня. Загортаючи cd
, будуючи та встановлюючи частину в підкольору, я гарантую, що незалежно від того, що відбувається під час цього процесу, я повернусь до своєї нормальної оболонки, нічого не змінилося. Тільки якщо це вдасться (&&), я запускаю побудовану та встановлену програму. Я можу знайти це в моїй історії лише Ctrl-Rтоді sta, будучи все, що мені зазвичай потрібно, щоб однозначно знайти цю командну послідовність.
Ще один приклад того, як я це використовую, - це послідовність, яка входить в створення RPM для цієї ж програми. Більшість виснажливих робіт знаходиться в скриптах оболонки, але все ж є кілька команд, які, як правило, мені доведеться набрати, щоб виконати всю роботу зі створення та розгортання вбудованих RPM, які мені зараз рідко доводиться повторно вводити, тому що Bash зберігає це в історії для мене.
Поєднайте все це з export HISTSIZE=bignum
і, shopt histappend
і ви щойно побудували слонтову командну пам'ять.
Ще одне рішення, яке я зашифрував один раз, - це моя відповідь на інше тут питання . Можливо, він повинен бути призначений для ваших цілей, і він обробляє лише cd
команди, тоді як параметр пошуку історії працює скрізь і для кожної команди.