Come posso navigare in una directory dal terminale?


16

Domanda super noob: posso navigare nella directory usando cddal terminale. Come posso tornare indietro se vado troppo lontano?



unix.stackexchange.com/a/81232/18237 ideale per lavorare in più rami di directory e contrassegnare un punto "iniziale" su cui tornare
Mateo,

So che nessuno di voi vuole ammettere di essere stato così stupido, ma questa domanda ha appena colpito 1000 visualizzazioni. quindi haha so che altre persone come me sono là fuori. : P
Vince Scalia,

Risposte:


30

cd .. ti riporterà indietro esattamente di una directory.

Puoi mettere insieme quelli per salire su più directory, ad esempio su 3

cd ../../..

Invece di digitare cd ..più volte, ciò che potresti fare è posizionare la funzione sotto il tuo .bashrcda qualche parte in alto, salvare .bashrced eseguire source .bashrco semplicemente chiudere e riaprire un terminale. Ora, hai una funzione che fa cd..esattamente quante volte glielo hai detto.

function goUp {
  num=$1
  while [ $num -ne 0  ];do
    cd ..
    num=$((num-1))
  done
}

demo:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

In alternativa:

goup(){ 
    cd $(n=$1 awk 'BEGIN{
        for(i=1;i<=ENVIRON["n"];i++) 
            printf "../"}';) 
}

Si noti che tale metodo ti riporta lungo i symlink. Ecco cosa intendo:

$ namei "$PWD" 
f: /home/user/VirtualBox VMs/CentOS
 d /
 d home
 d user
 l VirtualBox VMs -> /mnt/ubuntu/vboxvms
   d /
   d mnt
   d ubuntu
   d vboxvms
 d CentOS

$ goup 2
$ pwd
/home/user

Guarda anche


Aggiunte alcune informazioni aggiuntive, controlla.
Sergiy Kolodyazhnyy,

Potrebbe essere giusto for i in $(seq "$1"); do cd ..; done.
deltab,

@deltab true, potrebbe anche essere fatto. . . Ma preferisco usare while + counter per simulare un ciclo for. Ho già fatto una domanda pertinente sul sito U&L
Sergiy Kolodyazhnyy,
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.