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 typingcd Downloads
will work, because Downloads is an immediate child of your current directory. If you are in the subfolderDocuments
and want to change directory (cd
) toDownloads
, you have to go up (..
) and then toDownloads
. So the correct command would becd ../Downloads
.You could also enter an absolute path. So the
Downloads
folder is a subfolder ofsharon
which is a subfolder ofhome
which is … (you get the idea :-)) So you can also entercd /home/sharon/Downloads
wherever you are in the filesystem.~
always refers to the home directory of the current user (/home/sharon
in your case). If you entercd ~/Downloads
you'll land in yourDownloads
folder..
refers to the current directory, socd ./Downloads
is roughly equivalent tocd Downloads
...
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 ~/Dow
Tab (last is pressing Tabulator key), the bash automatically expands it tocd ~/Downloads
.As the others said GNU/Linux is case sensitive. So it makes a difference if you enter
Home
,hOme
orhome
. Furthermore I hope that you see now that there is a difference between/home
andhome
. The first is adressed absolute while the last is relative to your current directory.@n00b If you found this answer helpful, you can "accept" it by clicking the V to the left of it.
[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$
Success!
[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:
cd ~/Downloads
If you want to go directly to your home directory, that is /home/sharon, simply do:
cd
Also you can go Step back with
cd ..
And you can print the directory you are working in with (print working directory)
pwd
@ chili555: Thanks a lot for helping newbies like me. Merry Christmas to you and your loved ones.
The leading slash indicates a path relative to the root, not one above the current directory. That would be `../`
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.@ psusi: Thanks to you, too. Merry Christmas to you and your loved ones.
@ psusi: What does the leading slash mean?
@ psusi: What does ./ mean?
@noob, `/` means start from the root directory and `.` means the current directory.
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
~/thisIsAFile
would 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
cd ..
And you can get the path you are in with (print working directory)
pwd
@ 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 `..`.
@ psusi: Sorry. I'm a bit confused here. What's a trailing slash? leading slash? Examples please? Thanks in advance.
License under CC-BY-SA with attribution
Content dated before 6/26/2020 9:53 AM
n00b 8 years ago
@ 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.