Comando cd .. Linux


9

Di 'se devo farlo molto:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

C'è un modo più veloce per non scrivere sempre ../../../../così tante volte? Qualche idea creativa?


2
perché non eseguirlo cd ../../../..e finirlo?
Red Cricket,

8
Potresti divertirti pushde popdpersino cd -.
jscott,

1
Se stai andando molto indietro, potrebbe avere senso semplicemente cd / actual / path / you / want a seconda della profondità delle cartelle.
Ha disegnato Khoury il

Questo è molto più sforzo di quanto valga la pena. Se ci si sposta da una directory all'altra, è più semplice specificare il percorso completo o semplicemente usare cd -( per passare all'ultima directory ). In genere, in alias h="history|grep"modo da poter utilizzare invece le scorciatoie per l'inserimento della cronologia. Qualcosa del genere h foo3, seguito da !450per ripetere quel comando.
ewwhite,

Apri un'altra finestra del terminale e non digitare affatto cd ../../../ ..
Matt,

Risposte:


18

Il modo classico per farlo è impostare la CDPATHvariabile. Nel tuo caso, potrebbe essere impostato su .:../../../../o .:/path/to/the/parent/of/fooper ottenere l'effetto desiderato. Puoi quindi semplicemente fare cd foo/sub1/bar/deste arrivare dove vuoi.

Il vantaggio di questo è che il completamento della scheda per cdanche guardare $CDPATHe funzionerà magicamente.


9

Puoi usare autojump che apprende automaticamente dal precedente comando cd e la prossima volta dovrai solo specificare una stringa univoca dal percorso completo. ex. j foo, j foo1, j foo2


7

È possibile creare collegamenti per questi comandi aggiungendo alias nel file di configurazione di bash (~ / .bashrc o /etc/bash.bashrc)

alias cdd="cd ../../../../"

Quindi quando digiti cddeseguirà quel comando.


3
Sì, o function cdd () { cd ../../../../$1/bar/dest ; }, così allora si può semplicemente digitare ad esempio cdd foo, cdd foo2.
Andrew Schulman,

0

Di recente mi sono imbattuto in https://github.com/rupa/z , che consente di passare a regex in una directory utilizzata di recente. Quindi potresti fare qualcosa del tipo:

z foo3.*dest

invece di:

cd ../../../../foo3/sub1/bar/dest/

(fintanto che hai già visitato quella directory in precedenza e niente di più recente / utilizzato di frequente corrisponde a regex)

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.