Маленький, но невероятно эффективный приём для тех, кто ежедневно работает с Linux и Git: использование символа - для мгновенного возврата в предыдущую директорию или на предыдущую ветку. Этот простой, но мощный трюк значительно экономит время, избавляя от рутинного ввода длинных путей.

Bash и удобство навигации

Если вы системный администратор, DevOps-инженер или разработчик, ваша работа в Bash терминале часто связана с переключением между различными директориями и Git-ветками. Традиционно это выглядит как многократное использование cd <path>:

cd /var/www/project
# поработали

cd /etc/nginx
# снова вернуться
cd /var/www/project

Лишний ввод символов и повторяющиеся действия можно избежать. В Bash и большинстве современных оболочек (таких как Zsh, Fish) существует очень удобный приём:

cd -

Эта команда мгновенно переместит вас обратно в предыдущую директорию.

Как это работает

Механизм работы прост и основан на встроенной функциональности оболочки. Каждый раз, когда вы выполняете команду cd, Bash автоматически сохраняет путь к текущей директории в специальную переменную окружения OLDPWD. Таким образом, команда cd - по сути является более лаконичной формой для cd $OLDPWD, но писать cd - гораздо удобнее и быстрее.

Пример использования

Представьте сценарий, где вы часто переключаетесь между директорией проекта и конфигурационными файлами Nginx:

cd /var/www/myproject
cd /etc/nginx

Теперь, чтобы мгновенно вернуться в директорию проекта, достаточно:

cd -

Результат:

/var/www/myproject

Если вы выполните cd - ещё раз, то снова окажетесь в /etc/nginx. То есть, эта команда позволяет быстро переключаться между двумя последними рабочими директориями. Это особенно удобно при отладке и внесении изменений в файлы.

Практический сценарий для администратора

Например, администратору нужно внести изменения в конфигурацию Nginx, а затем быстро проверить файлы веб-сайта:

cd /etc/nginx
nano nginx.conf

cd /var/www/site
ls

cd -

После выполнения cd - вы снова окажетесь в директории /etc/nginx, готовые продолжить работу с конфигурацией.

Этот же трюк работает и в Git

Интересно, что символ - используется и в Git для аналогичной логики. Команда git switch - переключит вас на предыдущую активную ветку.

Пример:

git switch feature-auth

# Проверили что-то

git switch main

# Вернуться обратно

git switch -

Git автоматически переключит вас обратно на ветку feature-auth. Это чрезвычайно удобно при частых переключениях между несколькими ветками разработки.

Ещё один полезный трюк

Вы также можете быстро просмотреть путь к предыдущей директории или использовать её напрямую, хотя cd - остаётся самым быстрым и элегантным решением:

echo $OLDPWD

cd $OLDPWD

Итог

Символ - в терминале — это маленький, но невероятно удобный плейсхолдер для обозначения предыдущего местоположения. Он эффективно работает:

  • в Bash
  • в Zsh
  • в большинстве Unix-оболочек
  • в Git

И позволяет мгновенно переключаться:

  • между директориями
  • между Git-ветками

Такие, казалось бы, незначительные трюки на самом деле значительно повышают продуктивность и делают работу в командной строке быстрее и приятнее.