Навігація складними структурами каталогів у терміналі Linux може забирати багато часу, особливо під час системного адміністрування або написання сценаріїв. Хоча cd (змінити каталог) є основною командою для навігації по каталогах, їй бракує можливості керувати стеком каталогів – цю функцію надають команди pushd і popd.
У цій статті ми детально розглянемо команди pushd і popd і покажемо, як спростити навігацію по каталогах і зробити робочий процес у терміналі ефективнішим.
pushd ( виштовхує каталог) зберігає ваш поточний каталог у стек, а потім переходить до нового каталогу.
popd (pop каталог) видаляє верхній каталог зі стека і повертає вас до попереднього.
Ці команди є частиною механізму стеку каталогів, доступного у bash, zsh та інших сучасних оболонках.
командиpushd і popd незамінні у наступних випадках:
Ви часто переміщуєтесь між двома або більше каталогами.
Ви пишете скрипти командного інтерпретатора, які потребують тимчасового перемикання каталогів.
Ви хочете уникнути забруднення оболонки непотрібними командами cd і зберегти контекст.
Переміщує поточний каталог до стеку.
Змінює каталог на /шлях/до/цілі.
приклад:
Тепер ви знаходитесь в /var/www/html, а ваш домашній каталог ~ зберігається в стеку.
Витягує верхній каталог зі стека.
Повертає вас до попереднього каталогу.
Продовжуючи приклад вище:
Ви повернетесь до каталогу ~.
Використовуйте dirs для перегляду поточного стану стека каталогів:
Приклад виведення:
Індекс 0 – це ваш поточний каталог.
Вищі індекси вказують на попередні каталоги.
Ви можете використовувати
щоб виштовхнути поточний каталог до стеку без зміни каталогів.
Ефективно для ітеративної розробки без повторюваних команд cd.
Ось скрипт, який збирає код у тимчасовому каталозі і повертається в чистому вигляді:
Якщо скрипт зазнає невдачі всередині /tmp/build-env, ви все одно повернетеся до початкового розташування.
Це робить ваші скрипти більш зручними для супроводу, особливо у разі виникнення помилок – ви можете безпечно повернутися до початкового каталогу.
При роботі з декількома викликами pushd, dirs -v допомагає відстежувати історію навігації.
Ви можете вилучити певний каталог зі стека:
Видаляє каталог з індексом 1 (не обов’язково поточний).
Переповнення стеку (не сайту 😄): Надмірне використання pushd без відповідних викликів popd може переповнити ваш стек, що призведе до плутанини у стані каталогів.
Не всюди доступні: pushd і popd вбудовані в bash, zsh і подібні оболонки – вони можуть бути недоступні в мінімальних оболонках, таких як sh.
Не постійний: Стек каталогів базується на сеансах роботи. Після завершення сеансу роботи у терміналі стек скидається.
У вашому .bashrc або.zshrc додайте:
Це зменшить кількість натискань клавіш і підвищить продуктивність.