Скажите, если мне нужно это делать часто:
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/
(если вы уже посещали этот каталог раньше, и ничего более недавнего / часто используемого не соответствует этому регулярному выражению)