C'è un modo per andare direttamente a qualsiasi directory da qualsiasi altra directory direttamente?


14

C'è un modo per andare direttamente a qualsiasi directory da qualsiasi altra directory direttamente? Ad esempio, supponiamo che io sia root e che volessi andare direttamente a currentProject senza fare :

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

C'è un modo per farlo?

Risposte:


21

Puoi usare qualcosa come autojump . Autojump ti consente di passare rapidamente alle directory più visitate con il jcomando.

Ad esempio, una volta che sei cdentrato nella tua currentProjectdirectory alcune volte, puoi saltare ad essa in questo modo:

j currentProject

Puoi persino usare solo una parte del nome della directory. Quindi potresti fare:

j current

Per cdin currentProject.


8

Puoi anche aggiungere alcune directory comuni al tuo $ CDPATH

export CDPATH=$HOME

Questo, ad esempio, ti consentirà di cdaccedere a qualsiasi directory nella cartella principale da qualsiasi parte del sistema.

Di Più


7

Questo non risponde direttamente alla tua domanda, ma se sto deducendo correttamente che salterai molto tra le directory, potresti usare un multiplexer terminale come GNU Screen per mantenere aperte le diverse directory in finestre diverse, e semplicemente passare da una all'altra, se necessario. Personalmente uso Byobu , che aggiunge alcune funzionalità nella parte superiore dello schermo.


1
Vedi anche: tmux .
Annika Backstrom,

5

Puoi impostare un alias nel tuo profilo bash. Fondamentalmente ciò ti consente di abbreviare un comando con una parola. È possibile impostare currentProject in modo che punti su / dropbox / dev / currentProject


4

Puoi creare collegamenti simbolici nella tua home directory dove vuoi andare.

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

In questo modo, stai ancora usando cd, ma non devi ricordare il percorso completo. Usa solo:

cd ~/currentProject

Quando smetti di usare il link, cancellalo.

rm ~/currentProject

0

Come Wuffers ha menzionato sopra, l' autojump che può fare questo per te. Memorizza un database di directory precedentemente visitate e consente di utilizzare un comando come j <a few letters in the directory path>per spostarsi in quella directory. Esiste un comando aggiuntivo per autojump denominato jcche dovrebbe soddisfare i tuoi requisiti. jcconsente di passare a una sottodirectory precedentemente visitata della directory di lavoro corrente. Quindi devi solo visitare la directory una volta per farlo funzionare fino a quando non elimini il database di autojump. Inoltre, puoi anche aggiungerlo direttamente invece con autojump --add DIR(magari costruendo l'elenco di aggiunta da un elenco di alberi di directory, se necessario).


0

In bash e * csh, ci sono i comandi integrati 'pushd' e 'popd' che ti permettono di spingere le directory su uno stack Last In First Out (con pushd [directory]) e poi passare rapidamente alla directory superiore nello stack usando 'popd'. Quindi, a seconda di come hai caricato lo stack, potresti essere in grado di navigare rapidamente tra le directory in modo adeguato affinché questo funzioni per te.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.