Wie navigiere ich vom Terminal aus in einem Verzeichnis nach oben?

16

Super noob Frage: Ich kann im Verzeichnis mit cdvom Terminal navigieren . Wie navigiere ich wieder nach oben, wenn ich zu weit gehe?

Vince Scalia
quelle
unix.stackexchange.com/a/81232/18237 groß für in mehreren Verzeichniszweige arbeiten und Markieren eines „Start“ Punkt zu kommen
Mateo
Ich weiß, keiner von Ihnen möchte zugeben, dass Sie so dumm waren, aber diese Frage traf nur 1000 Aufrufe. so haha ich weiß , andere Leute wie ich da draußen. : P
Vince Scalia

Antworten:

30

cd .. bringt Sie genau ein Verzeichnis zurück.

Sie können diese aneinander reihen, um mehrere Verzeichnisse aufzurufen, z. B. bis zu 3

cd ../../..

Anstatt cd ..mehrere Male zu tippen, können Sie den Funktionsbalg oben in Ihre einfügen, ein Terminal .bashrcspeichern .bashrcund ausführen source .bashrcoder einfach schließen und erneut öffnen. Jetzt haben Sie eine Funktion, die cd..genau so oft ausführt, wie Sie es angekündigt haben.

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

Demo:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

Alternative:

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

Beachten Sie, dass eine solche Methode Sie zurück zu den Symlinks bringt. Folgendes meine ich:

$ 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

Siehe auch

Sergiy Kolodyazhnyy
quelle
Weitere Informationen hinzugefügt, überprüfen Sie es.
Sergiy Kolodyazhnyy
Das könnte gerecht sein for i in $(seq "$1"); do cd ..; done.
DeltaB
@deltab wahr, könnte auch gemacht werden. . . Aber ich bevorzuge es, while + counter zu verwenden, um eine for-Schleife zu simulieren. Ich habe
vorhin