8

I try to use the commands cd.. and cd. in the terminal to move from my current folder to a previous one, and it shows me a message that the command doesn't exist...

What could the problem be? I'm using Ubuntu 18.04 LTS.

  • 3
    You need to add a space between the commmand (cd) and the arguments (the path where you want to go). By the way: welcome to AskUbuntu. – 0x2b3bfa0 Aug 29 '18 at 13:29
  • 2
    To add cd.. is a Windows thing.. – George Udosen Aug 29 '18 at 13:31
17

You need to add a space between the commmand (cd) and the arguments (the path where you want to go).

In your case, you should use cd .. instead of cd..

Also, please note that the previous folder directory is not the same as the parent directory. I encourage you to check this answer to obtain more information about the directory navigation basics in Linux.

| improve this answer | |
  • 5
    One thing mentioned neither in the linked answer nor here is that the way to get to the “previous folder” is cd -. – Emil Jeřábek Aug 29 '18 at 14:34
  • 1
    The answer would be improved if it used the correct term: directory. – jamesqf Aug 29 '18 at 16:42
  • @jamesqf: you're right, I didn't think about the OP words. – 0x2b3bfa0 Aug 29 '18 at 16:58
  • 5
    Much as Linuxers like to insist on "directory", there's nothing wrong with using the term "folder" for a directory, not only because in most contexts they are interchangeable terms (note that Linux file management programs like nautilus use the latter (context menu offers Create Folder)) but also because while in technical usage a folder might not always be a directory, a directory will always be a folder. – Zanna Aug 29 '18 at 18:44
  • 2
    @Zanna, I'm not usually prone to argue about these common and seemingly improductive semantical and/or historical holy wars. However, I think that "folder" is a widespread term that is easier to grasp for the reader, even if "directory" can be used here with the same (or more precise) meaning. This reminds me an old answer, in which I learned that on the Kernel Ext4 documentation, that type of inode is called directory. – 0x2b3bfa0 Aug 29 '18 at 19:31
6

Try this to save your sanity:

alias cd..='cd ..'

Now you can type it either with the space or without and it will still work.

Explanation: Windows and MS-DOS allow you to type CD.. to change directory to one level higher than you currently are. Some commands are built in to the command interpreter on those systems. Linux (and probably other *nixes) looks for a program followed by arguments, and the only way to separate the program and arguments is with a space. Hence, Linux is only seeing one command called 'cd..' and it can't find the executable for it. What you mean is 'cd ..' (cd => program, .. => argument).

My solution adds an alias for 'cd..' so that when you type that on a command line the system will instead run 'cd ..' (with space). See the other comments to this answer to see about adding that as a permanent alias.

| improve this answer | |
  • 3
    nice :) You could add how to make this permanent by adding to .bashrc – Zanna Aug 29 '18 at 14:15
  • 2
    +1 Aliases are the best. I also use kk and öö as alias for ll ;-) and yoda as alias for sudo :-D – pLumo Aug 29 '18 at 14:19
  • 2
    While this is an interesting workaround, I don't think it's a good idea to skip the explanation of why a basic command doesn't work by providing a more complex command, still without explanation. – Clément Aug 29 '18 at 17:11
  • 1
    @Clément, true. I've added an explanation. – Luke G. Aug 29 '18 at 18:32
  • 2
    cd is also a builtin command on unix shells — but builtin commands obey the same syntax as external commands they don't get their own rules :) – hobbs Aug 29 '18 at 19:41
3

The actual command is cd ... You forgot that space.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.