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