How do I navigate between directories in terminal?
I am new to Linux and Ubuntu and have tried changing to folders/directories with some difficulty.
Could someone explain why the following commands failed to change to the desired target folder/directory?
[email protected]:~$ cd Home bash: cd: Home: No such file or directory [email protected]:~$ cd /Home bash: cd: /Home: No such file or directory [email protected]:~$ cd Documents [email protected]:~/Documents$ cd Downloads bash: cd: Downloads: No such file or directory [email protected]:~/Documents$ cd /Downloads bash: cd: /Downloads: No such file or directory [email protected]:~/Documents$
The filesystem is GNU/Linux is like a tree, except that the root is on top. :-) So you have structure like:
/ bin/ home/ sharon/ Documents/ Downloads/ fileA.txt fileB.jpg usr/ var/
If you want to move inside the tree, one option is to use relative paths. If you are in
/home/sharon, then typing
cd Downloadswill work, because Downloads is an immediate child of your current directory. If you are in the subfolder
Documentsand want to change directory (
Downloads, you have to go up (
..) and then to
Downloads. So the correct command would be
You could also enter an absolute path. So the
Downloadsfolder is a subfolder of
sharonwhich is a subfolder of
homewhich is … (you get the idea :-)) So you can also enter
cd /home/sharon/Downloadswherever you are in the filesystem.
~always refers to the home directory of the current user (
/home/sharonin your case). If you enter
cd ~/Downloadsyou'll land in your
.refers to the current directory, so
cd ./Downloadsis roughly equivalent to
..means "parent directory".
/at the beginning of file path refers to the root directory.
The next nice thing is tab expansion. If you enter
cd ~/DowTab (last is pressing Tabulator key), the bash automatically expands it to
As the others said GNU/Linux is case sensitive. So it makes a difference if you enter
home. Furthermore I hope that you see now that there is a difference between
home. The first is adressed absolute while the last is relative to your current directory.
@ qbi: Wow, you're awesome. I love your detailed explanation on how to navigate among folders/directories. Are you a teacher or professor in an educational institution? Most IT guys know a lot of IT stuff but breaking concepts down to manageable and "digestible" chunks so that newbies can understand is only within the grasp of a handful but gifted guys like you.
[email protected]:~$ cd Home bash: cd: Home: No such file or directory
The little cedilla ~ indicates you are already in your /home/sharon directory. When you ask for 'cd Home' the terminal looks for /home/sharon/Home. There is none.
[email protected]:~$ cd /Home bash: cd: /Home: No such file or directory
Now you are asking, given the leading slash, to go to a directory above the current location; that is /home/Home. There is none.
[email protected]:~$ cd Documents [email protected]:~/Documents$
[email protected]:~/Documents$ cd /Downloads bash: cd: /Downloads: No such file or directory
I'm not too sure where exactly this is. If you want to change from /home/sharon/Documents to /home/sharon/Downloads, please try:
If you want to go directly to your home directory, that is /home/sharon, simply do:
Also you can go Step back with
And you can print the directory you are working in with (print working directory)
@ chili555: Thanks a lot for helping newbies like me. Merry Christmas to you and your loved ones.
The command tells you why: There is no such directory.
Filenames are case sensetive, so it is /home, not /Home. Without a leading slash, it is assumed to be relative to the current directory, and the Downloads directory is not in ~/Documents, nor is it in /, but in your home directory, to which
~is a shortcut, thus it is ~/Documents.
I have to answer over this, because i can't comment on answers -.-
What does the leading slash mean? – n00b
it means that the thin you are talking about is a directory not a file. Files don't have to have file endings like in Windows, so
~/thisIsAFilewould be a file in your home-directory but
~/thisIsAFile/would be a directory/ a folder.
What does ./ mean? – n00b
That means that the file you want to access is in your current directory.
Other usefull tips:
You can go a folder back with
And you can get the path you are in with (print working directory)
@ a2r: Thanks for the clarification. I didn't know that files don't have file extensions like in Microsoft Windows. Do programs have file extensions in Ubuntu too?
Generally not, the system doesn't care what endings a file has, if its marked as executable ( google about chmod ) then you can run it as a programm. Also there is a global variable (google about it) called $PATH there are a view directories saved (you can see which there are with `echo $PATH`). And when you try to run a program like you type `gedit` in the terminal. Your system looks throw the folders in $PATH and searches for gedit.
That would be a trailing slash, not a leading slash. Also you must have a space in there before the `..`.