Скажите, если мне нужно будет делать это часто:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
Есть ли более быстрый способ не печатать ../../../../
так много раз? Есть креативные идеи?
решение1
Классический способ сделать это — установить CDPATH
переменную. В вашем случае она может быть установлена на .:../../../../
или .:/path/to/the/parent/of/foo
для достижения желаемого эффекта. Затем вы можете просто сделать cd foo/sub1/bar/dest
и попасть туда, куда хотите.
Преимущество этого в том, что автодополнение клавишей Tab cd
также учитывает $CDPATH
и будет волшебным образом работать.
решение2
Вы можете использоватьавтопрыжоккоторый автоматически учится на предыдущей команде cd, и в следующий раз вам нужно будет только указать уникальную строку из полного пути. например,
j foo
,
j foo1
,
j foo2
решение3
Вы можете создать ярлыки для этих команд, добавив псевдонимы в файл конфигурации bash (~/.bashrc или /etc/bash.bashrc)
alias cdd="cd ../../../../"
Затем, когда вы введете cdd
команду, она будет выполнена.
решение4
Недавно я наткнулся наhttps://github.com/rupa/z, который позволяет вам перейти к недавно использованному каталогу с помощью регулярного выражения. Так что вы можете сделать что-то вроде:
z foo3.*dest
вместо:
cd ../../../../foo3/sub1/bar/dest/
(при условии, что вы уже посещали этот каталог и ничто более недавнее / часто используемое не соответствует этому регулярному выражению)