29

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?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$

4 Answers 4

41

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 Downloads will work, because Downloads is an immediate child of your current directory. If you are in the subfolder Documents and want to change directory (cd) to Downloads, you have to go up (..) and then to Downloads. So the correct command would be cd ../Downloads.

You could also enter an absolute path. So the Downloads folder is a subfolder of sharon which is a subfolder of home which is … (you get the idea :-)) So you can also enter cd /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 enter cd ~/Downloads you'll land in your Downloads folder.

  • . refers to the current directory, so cd ./Downloads is roughly equivalent to cd 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 ~/DowTab (last is pressing Tabulator key), the bash automatically expands it to cd ~/Downloads.

As the others said GNU/Linux is case sensitive. So it makes a difference if you enter Home, hOme or home. Furthermore I hope that you see now that there is a difference between /home and home. The first is adressed absolute while the last is relative to your current directory.

2
  • 1
    @ 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.
    – n00b
    Dec 24, 2012 at 22:04
  • 2
    @n00b If you found this answer helpful, you can "accept" it by clicking the V to the left of it.
    – Fiksdal
    Jun 8, 2016 at 5:53
8
sharon@sharon:~$ 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.

sharon@sharon:~$ 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.

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

Success!

sharon@sharon:~/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
2
  • @ chili555: Thanks a lot for helping newbies like me. Merry Christmas to you and your loved ones.
    – n00b
    Dec 24, 2012 at 21:46
  • 2
    The leading slash indicates a path relative to the root, not one above the current directory. That would be ../
    – psusi
    Dec 25, 2012 at 15:09
3

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.

4
  • @ psusi: Thanks to you, too. Merry Christmas to you and your loved ones.
    – n00b
    Dec 24, 2012 at 21:48
  • @ psusi: What does the leading slash mean?
    – n00b
    Dec 24, 2012 at 21:48
  • @ psusi: What does ./<filename> mean?
    – n00b
    Dec 24, 2012 at 21:49
  • @noob, / means start from the root directory and . means the current directory.
    – psusi
    Dec 25, 2012 at 15:05
0

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
4
  • @ 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?
    – n00b
    Dec 24, 2012 at 22:18
  • 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.
    – a2r
    Dec 25, 2012 at 12:33
  • 1
    That would be a trailing slash, not a leading slash. Also you must have a space in there before the ...
    – psusi
    Dec 25, 2012 at 15:07
  • @ psusi: Sorry. I'm a bit confused here. What's a trailing slash? leading slash? Examples please? Thanks in advance.
    – n00b
    Dec 27, 2012 at 13:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .