How do I navigate up one directory from the terminal?

I can navigate down in directory using cd in the terminal. How do I navigate back up if I go too far?


Solution 1:

cd .. will bring you back exactly one directory up.

You can string together those to go up multiple directories, e.g. up 3

cd ../../..

Instead of typing cd .. multiple times, what you could to is to place the function bellow into your .bashrc somewhere at the top, save .bashrc, and run source .bashrc or just close and reopen a terminal. Now, you have a function that does cd.. exactly how many times you told it to.

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

Demo:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

Alternatively:

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

Note that such method brings you back along the symlinks. Here's what I mean:

$ 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

See also

  • What are directories, if everything on Linux is a file?
  • Why is the current directory in the ls command identified as linked to itself?

Solution 2:

I found a simple way to go up.

cd ../

./ means current directory

../means one level up directory