Use of / when using cd











up vote
7
down vote

favorite












I'm in my home directory on my mac:



$ pwd
/Users/lukas


When I cd around, I do not (and can't) start the path with /:



$ cd Documents/
/Users/lukas/Documents

$ cd /Documents
-bash: cd: /Documents: No such file or directory


Except when I'm in /:



$ pwd
/
$ cd Users
/Users

$ cd /Users
/Users


Why can I use / in front of the path when going from / to /Users but not in any subsequent levels? Is this specific to macOS or is this standard Unix behavior?










share|improve this question







New contributor




LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 7




    I think questions about relative and absolute paths have been asked befofre
    – adamczi
    12 hours ago








  • 3




    @adamczi It is pretty obvious that OP does not know what a relative path is, or how its syntax is, thus he can't look it up.
    – K. Gkinis
    12 hours ago






  • 7




    @K.Gkinis Which is not a reason for not closing as duplicate. It help askers to get good answers (assume answers are good) and answerers to maintain less versions of the same content.
    – user202729
    11 hours ago






  • 5




    @K.Gkinis And, in a sense, that is a large part of the point of closing as a duplicate: people will ask questions in lots of different ways, so lots of questions (matching those ways) pointing to a single answer is a Good Thing. In cases like this (where an OP doesn't know the term to search for), closing-as-dupe is not a criticism of them, just the best way of handling the many way people ask questions.
    – TripeHound
    10 hours ago

















up vote
7
down vote

favorite












I'm in my home directory on my mac:



$ pwd
/Users/lukas


When I cd around, I do not (and can't) start the path with /:



$ cd Documents/
/Users/lukas/Documents

$ cd /Documents
-bash: cd: /Documents: No such file or directory


Except when I'm in /:



$ pwd
/
$ cd Users
/Users

$ cd /Users
/Users


Why can I use / in front of the path when going from / to /Users but not in any subsequent levels? Is this specific to macOS or is this standard Unix behavior?










share|improve this question







New contributor




LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 7




    I think questions about relative and absolute paths have been asked befofre
    – adamczi
    12 hours ago








  • 3




    @adamczi It is pretty obvious that OP does not know what a relative path is, or how its syntax is, thus he can't look it up.
    – K. Gkinis
    12 hours ago






  • 7




    @K.Gkinis Which is not a reason for not closing as duplicate. It help askers to get good answers (assume answers are good) and answerers to maintain less versions of the same content.
    – user202729
    11 hours ago






  • 5




    @K.Gkinis And, in a sense, that is a large part of the point of closing as a duplicate: people will ask questions in lots of different ways, so lots of questions (matching those ways) pointing to a single answer is a Good Thing. In cases like this (where an OP doesn't know the term to search for), closing-as-dupe is not a criticism of them, just the best way of handling the many way people ask questions.
    – TripeHound
    10 hours ago















up vote
7
down vote

favorite









up vote
7
down vote

favorite











I'm in my home directory on my mac:



$ pwd
/Users/lukas


When I cd around, I do not (and can't) start the path with /:



$ cd Documents/
/Users/lukas/Documents

$ cd /Documents
-bash: cd: /Documents: No such file or directory


Except when I'm in /:



$ pwd
/
$ cd Users
/Users

$ cd /Users
/Users


Why can I use / in front of the path when going from / to /Users but not in any subsequent levels? Is this specific to macOS or is this standard Unix behavior?










share|improve this question







New contributor




LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I'm in my home directory on my mac:



$ pwd
/Users/lukas


When I cd around, I do not (and can't) start the path with /:



$ cd Documents/
/Users/lukas/Documents

$ cd /Documents
-bash: cd: /Documents: No such file or directory


Except when I'm in /:



$ pwd
/
$ cd Users
/Users

$ cd /Users
/Users


Why can I use / in front of the path when going from / to /Users but not in any subsequent levels? Is this specific to macOS or is this standard Unix behavior?







linux command-line mac terminal






share|improve this question







New contributor




LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 22 hours ago









LukasKawerau

1473




1473




New contributor




LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






LukasKawerau is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 7




    I think questions about relative and absolute paths have been asked befofre
    – adamczi
    12 hours ago








  • 3




    @adamczi It is pretty obvious that OP does not know what a relative path is, or how its syntax is, thus he can't look it up.
    – K. Gkinis
    12 hours ago






  • 7




    @K.Gkinis Which is not a reason for not closing as duplicate. It help askers to get good answers (assume answers are good) and answerers to maintain less versions of the same content.
    – user202729
    11 hours ago






  • 5




    @K.Gkinis And, in a sense, that is a large part of the point of closing as a duplicate: people will ask questions in lots of different ways, so lots of questions (matching those ways) pointing to a single answer is a Good Thing. In cases like this (where an OP doesn't know the term to search for), closing-as-dupe is not a criticism of them, just the best way of handling the many way people ask questions.
    – TripeHound
    10 hours ago
















  • 7




    I think questions about relative and absolute paths have been asked befofre
    – adamczi
    12 hours ago








  • 3




    @adamczi It is pretty obvious that OP does not know what a relative path is, or how its syntax is, thus he can't look it up.
    – K. Gkinis
    12 hours ago






  • 7




    @K.Gkinis Which is not a reason for not closing as duplicate. It help askers to get good answers (assume answers are good) and answerers to maintain less versions of the same content.
    – user202729
    11 hours ago






  • 5




    @K.Gkinis And, in a sense, that is a large part of the point of closing as a duplicate: people will ask questions in lots of different ways, so lots of questions (matching those ways) pointing to a single answer is a Good Thing. In cases like this (where an OP doesn't know the term to search for), closing-as-dupe is not a criticism of them, just the best way of handling the many way people ask questions.
    – TripeHound
    10 hours ago










7




7




I think questions about relative and absolute paths have been asked befofre
– adamczi
12 hours ago






I think questions about relative and absolute paths have been asked befofre
– adamczi
12 hours ago






3




3




@adamczi It is pretty obvious that OP does not know what a relative path is, or how its syntax is, thus he can't look it up.
– K. Gkinis
12 hours ago




@adamczi It is pretty obvious that OP does not know what a relative path is, or how its syntax is, thus he can't look it up.
– K. Gkinis
12 hours ago




7




7




@K.Gkinis Which is not a reason for not closing as duplicate. It help askers to get good answers (assume answers are good) and answerers to maintain less versions of the same content.
– user202729
11 hours ago




@K.Gkinis Which is not a reason for not closing as duplicate. It help askers to get good answers (assume answers are good) and answerers to maintain less versions of the same content.
– user202729
11 hours ago




5




5




@K.Gkinis And, in a sense, that is a large part of the point of closing as a duplicate: people will ask questions in lots of different ways, so lots of questions (matching those ways) pointing to a single answer is a Good Thing. In cases like this (where an OP doesn't know the term to search for), closing-as-dupe is not a criticism of them, just the best way of handling the many way people ask questions.
– TripeHound
10 hours ago






@K.Gkinis And, in a sense, that is a large part of the point of closing as a duplicate: people will ask questions in lots of different ways, so lots of questions (matching those ways) pointing to a single answer is a Good Thing. In cases like this (where an OP doesn't know the term to search for), closing-as-dupe is not a criticism of them, just the best way of handling the many way people ask questions.
– TripeHound
10 hours ago












2 Answers
2






active

oldest

votes

















up vote
37
down vote



accepted










This is standard Unix behaviour.



The / at the beginning of the path represents the root of the disk (or the start/uppermost level of the filesystem tree). As Documents is not off the root, /Documents can't be found.



/Users is off the root directory, so this problem does not occur.



You could use cd /Users/lukas/Documents to change to that path.



Alternatively, you could use relative addressing. Unix based filesystems have 2 special directories:





  • . which means "this directory",


  • .. which means the parent directory.


If you are in /Users/lukas, cd ./Documents would take you to the correct place.



Let's assume you were in /Users/Lukas/Documents and wanted to go to /Users/Janes/Documents, you could issue a command cd ../../Janes/Documents - using .. would take you back a level - so you would do it twice, before going into the new relative path.






share|improve this answer



















  • 1




    Note: as @davidgo said, when in Users/lukas, cd Documents calls for the relative path; cd /Users/Lukas/Documents calls for the absolute path (which would be working whatever repertory you are in when calling this command).
    – Shan-x
    16 hours ago










  • While the question is about a Mac, which is a Unix system, this is also standard MS-DOS/Windows behavior (replacing / with ``) since DOS borrowed it (through a long, convoluted history) from Unix.
    – FreeMan
    11 hours ago








  • 1




    Also depending on the shell you use, cd $HOME/Documents or cd ~/Documents would also work. The shell variable HOME (accessed with $HOME) is the usual storage location for your home directory (~ being a special alias for $HOME).
    – pboss3010
    10 hours ago


















up vote
7
down vote













/Users/lukas is an "absolute" path. The leading / represents the root directory of your filesystem.



lukas is a "relative" path. As it is not anchored to the root, it means "look for this in the current directory". Unless the current directory is /Users (or some other directory with a lukas in it), this will fail.



So, let's explore your examples, assuming you're in /Users/lukas:



$ cd Documents/
/Users/lukas/Documents


Relative path given => change to the directory "Documents" that's inside /Users/lukas.



$ cd /Documents
-bash: cd: /Documents: No such file or directory


Absolute path given => change to the directory /Documents.



$ pwd
/


This shows that you've now changed the working directory to the root directory, / (though the cd command to do this was not shown).



$ cd Users
/Users


Relative path given => change to the directory "Users" that's inside /.



$ cd /Users
/Users


Absolute path given => change to the directory /Users.



The key each time is that leading /. With it, the path is absolute. Without it, the path is relative. This rule is unambiguous because all absolute paths begin with / (because the root directory is always called /).



Here's some pseudocode loosely describing that algorithm:



MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>


The argument you pass to cd goes through this algorithm; the directory you end up changing to is the path that the algorithm returns.





Further reading:





  • Unix Files and Directories Tutorial

    Joseph L. Zachary
    "Introduction to Scientific Programming"






share|improve this answer





















    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    LukasKawerau is a new contributor. Be nice, and check out our Code of Conduct.










     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1377166%2fuse-of-when-using-cd%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    37
    down vote



    accepted










    This is standard Unix behaviour.



    The / at the beginning of the path represents the root of the disk (or the start/uppermost level of the filesystem tree). As Documents is not off the root, /Documents can't be found.



    /Users is off the root directory, so this problem does not occur.



    You could use cd /Users/lukas/Documents to change to that path.



    Alternatively, you could use relative addressing. Unix based filesystems have 2 special directories:





    • . which means "this directory",


    • .. which means the parent directory.


    If you are in /Users/lukas, cd ./Documents would take you to the correct place.



    Let's assume you were in /Users/Lukas/Documents and wanted to go to /Users/Janes/Documents, you could issue a command cd ../../Janes/Documents - using .. would take you back a level - so you would do it twice, before going into the new relative path.






    share|improve this answer



















    • 1




      Note: as @davidgo said, when in Users/lukas, cd Documents calls for the relative path; cd /Users/Lukas/Documents calls for the absolute path (which would be working whatever repertory you are in when calling this command).
      – Shan-x
      16 hours ago










    • While the question is about a Mac, which is a Unix system, this is also standard MS-DOS/Windows behavior (replacing / with ``) since DOS borrowed it (through a long, convoluted history) from Unix.
      – FreeMan
      11 hours ago








    • 1




      Also depending on the shell you use, cd $HOME/Documents or cd ~/Documents would also work. The shell variable HOME (accessed with $HOME) is the usual storage location for your home directory (~ being a special alias for $HOME).
      – pboss3010
      10 hours ago















    up vote
    37
    down vote



    accepted










    This is standard Unix behaviour.



    The / at the beginning of the path represents the root of the disk (or the start/uppermost level of the filesystem tree). As Documents is not off the root, /Documents can't be found.



    /Users is off the root directory, so this problem does not occur.



    You could use cd /Users/lukas/Documents to change to that path.



    Alternatively, you could use relative addressing. Unix based filesystems have 2 special directories:





    • . which means "this directory",


    • .. which means the parent directory.


    If you are in /Users/lukas, cd ./Documents would take you to the correct place.



    Let's assume you were in /Users/Lukas/Documents and wanted to go to /Users/Janes/Documents, you could issue a command cd ../../Janes/Documents - using .. would take you back a level - so you would do it twice, before going into the new relative path.






    share|improve this answer



















    • 1




      Note: as @davidgo said, when in Users/lukas, cd Documents calls for the relative path; cd /Users/Lukas/Documents calls for the absolute path (which would be working whatever repertory you are in when calling this command).
      – Shan-x
      16 hours ago










    • While the question is about a Mac, which is a Unix system, this is also standard MS-DOS/Windows behavior (replacing / with ``) since DOS borrowed it (through a long, convoluted history) from Unix.
      – FreeMan
      11 hours ago








    • 1




      Also depending on the shell you use, cd $HOME/Documents or cd ~/Documents would also work. The shell variable HOME (accessed with $HOME) is the usual storage location for your home directory (~ being a special alias for $HOME).
      – pboss3010
      10 hours ago













    up vote
    37
    down vote



    accepted







    up vote
    37
    down vote



    accepted






    This is standard Unix behaviour.



    The / at the beginning of the path represents the root of the disk (or the start/uppermost level of the filesystem tree). As Documents is not off the root, /Documents can't be found.



    /Users is off the root directory, so this problem does not occur.



    You could use cd /Users/lukas/Documents to change to that path.



    Alternatively, you could use relative addressing. Unix based filesystems have 2 special directories:





    • . which means "this directory",


    • .. which means the parent directory.


    If you are in /Users/lukas, cd ./Documents would take you to the correct place.



    Let's assume you were in /Users/Lukas/Documents and wanted to go to /Users/Janes/Documents, you could issue a command cd ../../Janes/Documents - using .. would take you back a level - so you would do it twice, before going into the new relative path.






    share|improve this answer














    This is standard Unix behaviour.



    The / at the beginning of the path represents the root of the disk (or the start/uppermost level of the filesystem tree). As Documents is not off the root, /Documents can't be found.



    /Users is off the root directory, so this problem does not occur.



    You could use cd /Users/lukas/Documents to change to that path.



    Alternatively, you could use relative addressing. Unix based filesystems have 2 special directories:





    • . which means "this directory",


    • .. which means the parent directory.


    If you are in /Users/lukas, cd ./Documents would take you to the correct place.



    Let's assume you were in /Users/Lukas/Documents and wanted to go to /Users/Janes/Documents, you could issue a command cd ../../Janes/Documents - using .. would take you back a level - so you would do it twice, before going into the new relative path.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited 21 hours ago









    Kamil Maciorowski

    22.6k155072




    22.6k155072










    answered 21 hours ago









    davidgo

    41.3k74885




    41.3k74885








    • 1




      Note: as @davidgo said, when in Users/lukas, cd Documents calls for the relative path; cd /Users/Lukas/Documents calls for the absolute path (which would be working whatever repertory you are in when calling this command).
      – Shan-x
      16 hours ago










    • While the question is about a Mac, which is a Unix system, this is also standard MS-DOS/Windows behavior (replacing / with ``) since DOS borrowed it (through a long, convoluted history) from Unix.
      – FreeMan
      11 hours ago








    • 1




      Also depending on the shell you use, cd $HOME/Documents or cd ~/Documents would also work. The shell variable HOME (accessed with $HOME) is the usual storage location for your home directory (~ being a special alias for $HOME).
      – pboss3010
      10 hours ago














    • 1




      Note: as @davidgo said, when in Users/lukas, cd Documents calls for the relative path; cd /Users/Lukas/Documents calls for the absolute path (which would be working whatever repertory you are in when calling this command).
      – Shan-x
      16 hours ago










    • While the question is about a Mac, which is a Unix system, this is also standard MS-DOS/Windows behavior (replacing / with ``) since DOS borrowed it (through a long, convoluted history) from Unix.
      – FreeMan
      11 hours ago








    • 1




      Also depending on the shell you use, cd $HOME/Documents or cd ~/Documents would also work. The shell variable HOME (accessed with $HOME) is the usual storage location for your home directory (~ being a special alias for $HOME).
      – pboss3010
      10 hours ago








    1




    1




    Note: as @davidgo said, when in Users/lukas, cd Documents calls for the relative path; cd /Users/Lukas/Documents calls for the absolute path (which would be working whatever repertory you are in when calling this command).
    – Shan-x
    16 hours ago




    Note: as @davidgo said, when in Users/lukas, cd Documents calls for the relative path; cd /Users/Lukas/Documents calls for the absolute path (which would be working whatever repertory you are in when calling this command).
    – Shan-x
    16 hours ago












    While the question is about a Mac, which is a Unix system, this is also standard MS-DOS/Windows behavior (replacing / with ``) since DOS borrowed it (through a long, convoluted history) from Unix.
    – FreeMan
    11 hours ago






    While the question is about a Mac, which is a Unix system, this is also standard MS-DOS/Windows behavior (replacing / with ``) since DOS borrowed it (through a long, convoluted history) from Unix.
    – FreeMan
    11 hours ago






    1




    1




    Also depending on the shell you use, cd $HOME/Documents or cd ~/Documents would also work. The shell variable HOME (accessed with $HOME) is the usual storage location for your home directory (~ being a special alias for $HOME).
    – pboss3010
    10 hours ago




    Also depending on the shell you use, cd $HOME/Documents or cd ~/Documents would also work. The shell variable HOME (accessed with $HOME) is the usual storage location for your home directory (~ being a special alias for $HOME).
    – pboss3010
    10 hours ago












    up vote
    7
    down vote













    /Users/lukas is an "absolute" path. The leading / represents the root directory of your filesystem.



    lukas is a "relative" path. As it is not anchored to the root, it means "look for this in the current directory". Unless the current directory is /Users (or some other directory with a lukas in it), this will fail.



    So, let's explore your examples, assuming you're in /Users/lukas:



    $ cd Documents/
    /Users/lukas/Documents


    Relative path given => change to the directory "Documents" that's inside /Users/lukas.



    $ cd /Documents
    -bash: cd: /Documents: No such file or directory


    Absolute path given => change to the directory /Documents.



    $ pwd
    /


    This shows that you've now changed the working directory to the root directory, / (though the cd command to do this was not shown).



    $ cd Users
    /Users


    Relative path given => change to the directory "Users" that's inside /.



    $ cd /Users
    /Users


    Absolute path given => change to the directory /Users.



    The key each time is that leading /. With it, the path is absolute. Without it, the path is relative. This rule is unambiguous because all absolute paths begin with / (because the root directory is always called /).



    Here's some pseudocode loosely describing that algorithm:



    MakePathAbsolute(path):
    if <path> starts with '/'
    return <path>
    else
    return <current directory>/<path>


    The argument you pass to cd goes through this algorithm; the directory you end up changing to is the path that the algorithm returns.





    Further reading:





    • Unix Files and Directories Tutorial

      Joseph L. Zachary
      "Introduction to Scientific Programming"






    share|improve this answer

























      up vote
      7
      down vote













      /Users/lukas is an "absolute" path. The leading / represents the root directory of your filesystem.



      lukas is a "relative" path. As it is not anchored to the root, it means "look for this in the current directory". Unless the current directory is /Users (or some other directory with a lukas in it), this will fail.



      So, let's explore your examples, assuming you're in /Users/lukas:



      $ cd Documents/
      /Users/lukas/Documents


      Relative path given => change to the directory "Documents" that's inside /Users/lukas.



      $ cd /Documents
      -bash: cd: /Documents: No such file or directory


      Absolute path given => change to the directory /Documents.



      $ pwd
      /


      This shows that you've now changed the working directory to the root directory, / (though the cd command to do this was not shown).



      $ cd Users
      /Users


      Relative path given => change to the directory "Users" that's inside /.



      $ cd /Users
      /Users


      Absolute path given => change to the directory /Users.



      The key each time is that leading /. With it, the path is absolute. Without it, the path is relative. This rule is unambiguous because all absolute paths begin with / (because the root directory is always called /).



      Here's some pseudocode loosely describing that algorithm:



      MakePathAbsolute(path):
      if <path> starts with '/'
      return <path>
      else
      return <current directory>/<path>


      The argument you pass to cd goes through this algorithm; the directory you end up changing to is the path that the algorithm returns.





      Further reading:





      • Unix Files and Directories Tutorial

        Joseph L. Zachary
        "Introduction to Scientific Programming"






      share|improve this answer























        up vote
        7
        down vote










        up vote
        7
        down vote









        /Users/lukas is an "absolute" path. The leading / represents the root directory of your filesystem.



        lukas is a "relative" path. As it is not anchored to the root, it means "look for this in the current directory". Unless the current directory is /Users (or some other directory with a lukas in it), this will fail.



        So, let's explore your examples, assuming you're in /Users/lukas:



        $ cd Documents/
        /Users/lukas/Documents


        Relative path given => change to the directory "Documents" that's inside /Users/lukas.



        $ cd /Documents
        -bash: cd: /Documents: No such file or directory


        Absolute path given => change to the directory /Documents.



        $ pwd
        /


        This shows that you've now changed the working directory to the root directory, / (though the cd command to do this was not shown).



        $ cd Users
        /Users


        Relative path given => change to the directory "Users" that's inside /.



        $ cd /Users
        /Users


        Absolute path given => change to the directory /Users.



        The key each time is that leading /. With it, the path is absolute. Without it, the path is relative. This rule is unambiguous because all absolute paths begin with / (because the root directory is always called /).



        Here's some pseudocode loosely describing that algorithm:



        MakePathAbsolute(path):
        if <path> starts with '/'
        return <path>
        else
        return <current directory>/<path>


        The argument you pass to cd goes through this algorithm; the directory you end up changing to is the path that the algorithm returns.





        Further reading:





        • Unix Files and Directories Tutorial

          Joseph L. Zachary
          "Introduction to Scientific Programming"






        share|improve this answer












        /Users/lukas is an "absolute" path. The leading / represents the root directory of your filesystem.



        lukas is a "relative" path. As it is not anchored to the root, it means "look for this in the current directory". Unless the current directory is /Users (or some other directory with a lukas in it), this will fail.



        So, let's explore your examples, assuming you're in /Users/lukas:



        $ cd Documents/
        /Users/lukas/Documents


        Relative path given => change to the directory "Documents" that's inside /Users/lukas.



        $ cd /Documents
        -bash: cd: /Documents: No such file or directory


        Absolute path given => change to the directory /Documents.



        $ pwd
        /


        This shows that you've now changed the working directory to the root directory, / (though the cd command to do this was not shown).



        $ cd Users
        /Users


        Relative path given => change to the directory "Users" that's inside /.



        $ cd /Users
        /Users


        Absolute path given => change to the directory /Users.



        The key each time is that leading /. With it, the path is absolute. Without it, the path is relative. This rule is unambiguous because all absolute paths begin with / (because the root directory is always called /).



        Here's some pseudocode loosely describing that algorithm:



        MakePathAbsolute(path):
        if <path> starts with '/'
        return <path>
        else
        return <current directory>/<path>


        The argument you pass to cd goes through this algorithm; the directory you end up changing to is the path that the algorithm returns.





        Further reading:





        • Unix Files and Directories Tutorial

          Joseph L. Zachary
          "Introduction to Scientific Programming"







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 13 hours ago









        Lightness Races in Orbit

        2,74511326




        2,74511326






















            LukasKawerau is a new contributor. Be nice, and check out our Code of Conduct.










             

            draft saved


            draft discarded


















            LukasKawerau is a new contributor. Be nice, and check out our Code of Conduct.













            LukasKawerau is a new contributor. Be nice, and check out our Code of Conduct.












            LukasKawerau is a new contributor. Be nice, and check out our Code of Conduct.















             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1377166%2fuse-of-when-using-cd%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            What visual should I use to simply compare current year value vs last year in Power BI desktop

            How to ignore python UserWarning in pytest?

            Alexandru Averescu