Como navego para cima em um diretório do terminal?

16

Super pergunta noob: eu posso navegar no diretório usando a cdpartir do terminal. Como navego de volta se for longe demais?

Vince Scalia
fonte
3
Possível duplicata de Ir para o diretório pai de um arquivo com cd?
DJCrashdummy
unix.stackexchange.com/a/81232/18237, ótimo para trabalhar em vários ramos de diretório e marcar um ponto "inicial" para voltar a #
Mateo
Eu sei que nenhum de vocês quer admitir que era tão estúpido, mas essa pergunta atingiu 1000 visualizações. então haha eu sei que outras pessoas como eu estão lá fora. : P
Vince Scalia

Respostas:

30

cd .. trará de volta exatamente um diretório.

Você pode agrupar aqueles para subir em vários diretórios, por exemplo, até 3

cd ../../..

Em vez de digitar cd ..várias vezes, o que você pode fazer é colocar a função abaixo no seu, em .bashrcalgum lugar no topo, salvar .bashrce executar source .bashrcou apenas fechar e reabrir um terminal. Agora, você tem uma função que executa cd..exatamente quantas vezes você pediu.

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

Demo:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

Alternativamente:

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

Observe que esse método traz de volta os links simbólicos. Aqui está o que eu quero dizer:

$ 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

Veja também

Sergiy Kolodyazhnyy
fonte
Adicionado mais algumas informações, confira.
Sergiy Kolodyazhnyy 28/11
Isso pode ser justo for i in $(seq "$1"); do cd ..; done.
Deltab
@Deltab verdade, poderia ser feito também. . . .Mas eu prefiro usar while + counter para simular um loop for. Eu fiz uma pergunta relevante antes no site da U&L #
Sergiy Kolodyazhnyy 29/11