Powiedz, czy muszę to często robić:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
Czy jest jakiś szybszy sposób, by nie zawsze pisać ../../../../
tyle razy? Jakieś kreatywne pomysły?
cd ../../../..
i skończyć z tym?pushd
apopd
nawetcd -
.cd -
( aby przejść do ostatniego katalogu ). Zwyklealias h="history|grep"
tak, że zamiast tego mogę używać skrótów do historii. Coś w styluh foo3
, po czym następuje!450
powtórzenie tego polecenia.Odpowiedzi:
Klasycznym sposobem na to jest ustawienie
CDPATH
zmiennej. W twoim przypadku można go ustawić na.:../../../../
lub.:/path/to/the/parent/of/foo
osiągnąć pożądany efekt. Następnie możesz po prostu zrobićcd foo/sub1/bar/dest
i dostać się tam, gdzie chcesz.Zaletą tego jest to, że uzupełnianie tabulatorów
cd
również wygląda$CDPATH
i będzie działać magicznie.źródło
Możesz użyć funkcji autojump, która automatycznie uczy się z poprzedniego polecenia cd i następnym razem musisz tylko określić unikalny ciąg z pełnej ścieżki. dawny.
j foo
,j foo1
,j foo2
źródło
Możesz tworzyć skróty dla tych poleceń, dodając aliasy do pliku konfiguracyjnego bash (~ / .bashrc lub /etc/bash.bashrc)
Następnie po wpisaniu
cdd
wykona to polecenie.źródło
function cdd () { cd ../../../../$1/bar/dest ; }
tak, to możesz po prostu wpisać npcdd foo
,cdd foo2
.Ostatnio natknąłem się na https://github.com/rupa/z , który pozwala przejść do ostatnio używanego katalogu przez regex. Więc możesz zrobić coś takiego:
zamiast:
(pod warunkiem, że wcześniej odwiedziłeś ten katalog i nic bardziej aktualnego / często używanego nie pasuje do wyrażenia regularnego)
źródło