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.