Comment remonter un répertoire à partir du terminal?

16

Question super noob: je peux naviguer dans le répertoire à cdpartir du terminal. Comment remonter si je vais trop loin?

Vince Scalia
la source
unix.stackexchange.com/a/81232/18237 idéal pour travailler dans plusieurs branches de répertoires et marquer un point de "départ" pour revenir
Mateo
Je sais qu'aucun d'entre vous ne veut admettre que vous étiez aussi stupide, mais cette question vient de toucher 1000 vues. alors haha je sais que d'autres personnes comme moi sont là-bas. : P
Vince Scalia

Réponses:

30

cd .. vous ramènera exactement un répertoire.

Vous pouvez les enchaîner pour monter plusieurs répertoires, par exemple jusqu'à 3

cd ../../..

Au lieu de taper cd ..plusieurs fois, vous pourriez placer la fonction ci-dessous dans votre .bashrcquelque part en haut, enregistrer .bashrcet exécuter source .bashrcou simplement fermer et rouvrir un terminal. Maintenant, vous avez une fonction qui fait cd..exactement combien de fois vous l'avez dit.

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

Démo:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

Alternativement:

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

Notez qu'une telle méthode vous ramène le long des liens symboliques. Voici ce que je veux dire:

$ 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

Voir également

Sergiy Kolodyazhnyy
la source
Ajouté quelques informations supplémentaires, vérifiez-le.
Sergiy Kolodyazhnyy
Ça pourrait être juste for i in $(seq "$1"); do cd ..; done.
deltab
@deltab true, pourrait aussi être fait. . . Mais je préfère utiliser while + counter pour simuler une boucle for. J'ai déjà posé une question pertinente sur le site U&L
Sergiy Kolodyazhnyy