Jak nawigować w górę o jeden katalog z terminala?

16

Pytanie Super noob: mogę nawigować w dół katalogu za pomocą cdterminala. Jak wrócić do poprzedniej pozycji, jeśli posunę się za daleko?

Vince Scalia
źródło
3
Możliwy duplikat Przechodzenie do katalogu nadrzędnego pliku z cd?
DJCrashdummy
unix.stackexchange.com/a/81232/18237 doskonale nadaje się do pracy w wielu gałęziach katalogów i oznaczania punktu początkowego, do którego można wrócić
Mateo
Wiem, że nikt z was nie chce przyznać, że byłeś taki głupi, ale to pytanie osiągnęło 1000 wyświetleń. więc haha, wiem, że inni ludzie tacy jak ja są tam. : P
Vince Scalia

Odpowiedzi:

30

cd .. przywróci ci dokładnie jeden katalog.

Możesz połączyć je, aby przejść do wielu katalogów, np. Do 3

cd ../../..

Zamiast cd ..wielokrotnego pisania , możesz umieścić funkcję poniżej w swoim .bashrcmiejscu na górze, zapisać .bashrci uruchomić source .bashrclub po prostu zamknąć i ponownie otworzyć terminal. Teraz masz funkcję, która działa cd..dokładnie tyle razy, ile razy jej mówiłeś.

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

Próbny:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

Alternatywnie:

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

Zauważ, że taka metoda prowadzi cię z powrotem do dowiązań symbolicznych. Oto co mam na myśli:

$ 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

Zobacz też

Sergiy Kolodyazhnyy
źródło
Dodano więcej informacji, sprawdź.
Sergiy Kolodyazhnyy
To może być sprawiedliwe for i in $(seq "$1"); do cd ..; done.
deltab
@deltab prawda, można to również zrobić. . . .Ale wolę używać licznika while + do symulacji pętli for. Zadałem wcześniej odpowiednie pytanie na stronie U&L
Sergiy Kolodyazhnyy