Назад | Перейти на главную страницу

Linux cd .. команда

Скажите, если мне нужно это делать часто:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

Есть ли более быстрый способ не всегда печатать ../../../../ так много раз? Есть творческие идеи?

Классический способ сделать это - установить CDPATH переменная. В вашем случае это может быть установлено на .:../../../../ или .:/path/to/the/parent/of/foo для достижения желаемого эффекта. Затем вы можете просто сделать cd foo/sub1/bar/dest и доберитесь туда, куда хотите.

Преимущество этого заключается в том, что завершение табуляции для cd также смотрит на $CDPATH и будет волшебным образом работать.

Ты можешь использовать автопрыжок которые автоматически учатся из предыдущей команды cd, и в следующий раз вам нужно только указать уникальную строку из полного пути. напр. j foo, j foo1, j foo2

Вы можете создать ярлыки для этих команд, добавив псевдонимы в файл конфигурации bash (~ / .bashrc или /etc/bash.bashrc)

alias cdd="cd ../../../../"

Затем, когда вы наберете cdd он выполнит эту команду.

Я недавно наткнулся https://github.com/rupa/z, который позволяет переходить в недавно использованный каталог с помощью регулярного выражения. Итак, вы можете сделать что-то вроде:

z foo3.*dest

вместо того:

cd ../../../../foo3/sub1/bar/dest/

(если вы уже посещали этот каталог раньше, и ничего более недавнего / часто используемого не соответствует этому регулярному выражению)