Скажи, если мне нужно сделать это много:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
Есть ли более быстрый способ не всегда печатать ../../../../
так много раз? Есть креативные идеи?
cd ../../../..
и не покончить с этим?pushd
иpopd
или дажеcd -
.cd -
( для перехода в последний каталог ) проще. Я обычноalias h="history|grep"
так, чтобы я мог вместо этого использовать ярлыки записи истории. Что-то вродеh foo3
, а затем!450
повторить эту команду.Ответы:
Классический способ сделать это - установить
CDPATH
переменную. В вашем случае это может быть установлено.:../../../../
или.:/path/to/the/parent/of/foo
для достижения желаемого эффекта. Вы можете просто сделатьcd foo/sub1/bar/dest
и добраться туда, куда вы хотите.Преимущество этого в том, что завершение вкладки
cd
также выглядит$CDPATH
и будет работать волшебным образом.источник
Вы можете использовать autojump, который автоматически извлекает уроки из предыдущей команды cd, и вам нужно только указать уникальную строку из полного пути в следующий раз. ех.
j foo
,j foo1
,j foo2
источник
Вы можете создать ярлыки для этих команд, добавив псевдонимы в файл конфигурации bash (~ / .bashrc или /etc/bash.bashrc).
Затем при вводе
cdd
он выполнит эту команду.источник
function cdd () { cd ../../../../$1/bar/dest ; }
, так , то вы можете просто ввести , напримерcdd foo
,cdd foo2
.Недавно я наткнулся на https://github.com/rupa/z , который позволяет вам перейти к недавно использованному каталогу с помощью регулярных выражений. Так что вы можете сделать что-то вроде:
вместо:
(если вы уже посещали этот каталог, и ничего более недавних / часто используемых совпадений, которые regex)
источник