Czy istnieje sposób, aby przejść bezpośrednio do dowolnego katalogu z innego katalogu?

14

Czy istnieje sposób, aby przejść bezpośrednio do dowolnego katalogu z innego katalogu? Załóżmy na przykład, że jestem rootem i chciałem przejść bezpośrednio do currentProject bez robienia :

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

Czy jest na to sposób?

abażur
źródło

Odpowiedzi:

21

Możesz użyć czegoś takiego jak autojump . Autojump pozwala szybko przejść do często odwiedzanych katalogów za pomocą jpolecenia.

Na przykład po kilkukrotnym cdwejściu do currentProjectkatalogu możesz przejść do niego w następujący sposób:

j currentProject

Możesz nawet użyć tylko części nazwy katalogu. Więc możesz zrobić:

j current

Aby cdw currentProject.

Wuffers
źródło
8

Możesz także dodać kilka popularnych katalogów do swojej $ CDPATH

export CDPATH=$HOME

To na przykład pozwoli ci przejść cddo dowolnego katalogu w twoim katalogu domowym z dowolnego miejsca w twoim systemie.

więcej

Yab
źródło
7

To nie odpowiada bezpośrednio na twoje pytanie, ale jeśli poprawnie wywnioskuję, że będziesz często przeskakiwać między katalogami, możesz użyć multipleksera terminala, takiego jak GNU Screen, aby utrzymać różne katalogi otwarte w różnych oknach, i po prostu przełączaj się między nimi w razie potrzeby. Ja osobiście korzystam z Byobu , która dodaje funkcjonalność na górze ekranu.

Abe Voelker
źródło
1
Zobacz także: tmux .
Annika Backstrom
5

Możesz ustawić alias w swoim profilu bash. Zasadniczo pozwala to skrócić polecenie słowem. Możesz ustawić currentProject tak, aby wskazywał / dropbox / dev / currentProject

n0pe
źródło
4

Możesz utworzyć dowiązania symboliczne w swoim katalogu domowym, do którego chcesz się udać.

ln -s /dropbox/dev/currentProject ~/currentProject

W ten sposób nadal używasz cd, ale nie musisz pamiętać pełnej ścieżki. Po prostu użyj:

cd ~/currentProject

Kiedy przestaniesz używać linku, po prostu go usuń.

rm ~/currentProject
Chris Ting
źródło
0

Jak wspomniano powyżej Wuffers , autojump, który może to dla ciebie zrobić. Przechowuje bazę danych wcześniej odwiedzanych katalogów i pozwala użyć polecenia, takiego jak j <a few letters in the directory path>przejście do tego katalogu. Istnieje dodatkowe polecenie o nazwie autojump, jcktóre powinno spełniać Twoje wymagania. jcpozwala przejść do poprzednio odwiedzonego podkatalogu bieżącego katalogu roboczego. Musisz więc odwiedzić katalog tylko raz, aby to zadziałało, dopóki nie wyczyścisz bazy danych autojump. Możesz także dodać go bezpośrednio za pomocą autojump --add DIR(w razie potrzeby budując listę dodawania z listy drzewa katalogów).

Snap Shot
źródło
0

W bash i * csh są wbudowane polecenia „pushd” i „popd”, które pozwalają na wypychanie katalogów na stos Last In First Out (with pushd [directory]), a następnie szybkie przejście do górnego katalogu na stosie za pomocą „popd”. Tak więc, w zależności od sposobu załadowania stosu, możesz być w stanie szybko odpowiednio nawigować między katalogami, aby było to dla Ciebie funkcjonalne.

Nevin Williams
źródło