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?
linux command-line mac terminal
New contributor
add a comment |
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?
linux command-line mac terminal
New contributor
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
add a comment |
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?
linux command-line mac terminal
New contributor
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
linux command-line mac terminal
New contributor
New contributor
New contributor
asked 22 hours ago
LukasKawerau
1473
1473
New contributor
New contributor
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
add a comment |
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
add a comment |
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.
1
Note: as @davidgo said, when inUsers/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
add a comment |
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"
add a comment |
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.
1
Note: as @davidgo said, when inUsers/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
add a comment |
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.
1
Note: as @davidgo said, when inUsers/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
add a comment |
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.
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.
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 inUsers/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
add a comment |
1
Note: as @davidgo said, when inUsers/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
add a comment |
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"
add a comment |
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"
add a comment |
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"
/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"
answered 13 hours ago
Lightness Races in Orbit
2,74511326
2,74511326
add a comment |
add a comment |
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.
LukasKawerau is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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