whereis returns different path to which
I use the command whereis rm
$ whereis rm
/bin/rm
Then I try which rm
$ which rm
/usr/local/opt/coreutils/libexec/gnubin/rm
The results are different... so which rm
will be called when I run a command like rm readme
?
command-line bash
add a comment |
I use the command whereis rm
$ whereis rm
/bin/rm
Then I try which rm
$ which rm
/usr/local/opt/coreutils/libexec/gnubin/rm
The results are different... so which rm
will be called when I run a command like rm readme
?
command-line bash
4
type rm
is likely to be more reliable than either - since it will show any path that has been cached by the shell
– steeldriver
Dec 12 '18 at 13:20
1
What version of Ubuntu are you running? A default installation of Ubuntu will have the commandrm
contained only in the/bin
folder in the path. Everything I am finding for thatwhich
command is that it comes frombrew
installing thecoreutils
on a Mac.
– Terrance
Dec 12 '18 at 14:45
1
Are you using Mac OSX? @user10726006
– Fabby
Dec 14 '18 at 8:06
add a comment |
I use the command whereis rm
$ whereis rm
/bin/rm
Then I try which rm
$ which rm
/usr/local/opt/coreutils/libexec/gnubin/rm
The results are different... so which rm
will be called when I run a command like rm readme
?
command-line bash
I use the command whereis rm
$ whereis rm
/bin/rm
Then I try which rm
$ which rm
/usr/local/opt/coreutils/libexec/gnubin/rm
The results are different... so which rm
will be called when I run a command like rm readme
?
command-line bash
command-line bash
edited Dec 14 '18 at 5:39
Zanna
50.7k13135241
50.7k13135241
asked Dec 12 '18 at 12:47
user10726006user10726006
903
903
4
type rm
is likely to be more reliable than either - since it will show any path that has been cached by the shell
– steeldriver
Dec 12 '18 at 13:20
1
What version of Ubuntu are you running? A default installation of Ubuntu will have the commandrm
contained only in the/bin
folder in the path. Everything I am finding for thatwhich
command is that it comes frombrew
installing thecoreutils
on a Mac.
– Terrance
Dec 12 '18 at 14:45
1
Are you using Mac OSX? @user10726006
– Fabby
Dec 14 '18 at 8:06
add a comment |
4
type rm
is likely to be more reliable than either - since it will show any path that has been cached by the shell
– steeldriver
Dec 12 '18 at 13:20
1
What version of Ubuntu are you running? A default installation of Ubuntu will have the commandrm
contained only in the/bin
folder in the path. Everything I am finding for thatwhich
command is that it comes frombrew
installing thecoreutils
on a Mac.
– Terrance
Dec 12 '18 at 14:45
1
Are you using Mac OSX? @user10726006
– Fabby
Dec 14 '18 at 8:06
4
4
type rm
is likely to be more reliable than either - since it will show any path that has been cached by the shell– steeldriver
Dec 12 '18 at 13:20
type rm
is likely to be more reliable than either - since it will show any path that has been cached by the shell– steeldriver
Dec 12 '18 at 13:20
1
1
What version of Ubuntu are you running? A default installation of Ubuntu will have the command
rm
contained only in the /bin
folder in the path. Everything I am finding for that which
command is that it comes from brew
installing the coreutils
on a Mac.– Terrance
Dec 12 '18 at 14:45
What version of Ubuntu are you running? A default installation of Ubuntu will have the command
rm
contained only in the /bin
folder in the path. Everything I am finding for that which
command is that it comes from brew
installing the coreutils
on a Mac.– Terrance
Dec 12 '18 at 14:45
1
1
Are you using Mac OSX? @user10726006
– Fabby
Dec 14 '18 at 8:06
Are you using Mac OSX? @user10726006
– Fabby
Dec 14 '18 at 8:06
add a comment |
2 Answers
2
active
oldest
votes
This answer on Super User by Denilson Sá Maia may be useful:
which
searches your user-specific PATH (which may include some of the locations whereis searches, and may not include others - it might also include some places thatwhereis
doesn't search if you'd added to your PATH).
whereis
searches the standard *nix locations for a specified command.
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Basically,
whereis
searches for "possibly useful" files, whilewhich
only searches for executables.
I rarely use
whereis
. On the other hand,which
is very useful, specially in scripts.which
is the answer for the following question: Where does this command come from?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
add a comment |
According to manual of which
:
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not canonicalize path names.
According to manual of whereis
:
whereis locates the binary, source and manual files for the specified command names. The supplied names are first stripped of leading pathname components and any (single) trailing extension of the form .ext (for example: .c) Prefixes of s. resulting from use of source code control are also dealt with. whereis then attempts to locate the desired program in the standard Linux places, and in the places specified by $PATH and $MANPATH.
So clearly there is a very thin of difference among them. which
results include path of executable file while whereis
results in binaries and documentation.
For example, consider java:
which
results in just one path, i.e. path of java executable file
/usr/bin/java
whereis
results in about paths, i.e. path of java binary, source and manual
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
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',
autoActivateHeartbeat: false,
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
});
}
});
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%2faskubuntu.com%2fquestions%2f1100315%2fwhereis-returns-different-path-to-which%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
This answer on Super User by Denilson Sá Maia may be useful:
which
searches your user-specific PATH (which may include some of the locations whereis searches, and may not include others - it might also include some places thatwhereis
doesn't search if you'd added to your PATH).
whereis
searches the standard *nix locations for a specified command.
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Basically,
whereis
searches for "possibly useful" files, whilewhich
only searches for executables.
I rarely use
whereis
. On the other hand,which
is very useful, specially in scripts.which
is the answer for the following question: Where does this command come from?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
add a comment |
This answer on Super User by Denilson Sá Maia may be useful:
which
searches your user-specific PATH (which may include some of the locations whereis searches, and may not include others - it might also include some places thatwhereis
doesn't search if you'd added to your PATH).
whereis
searches the standard *nix locations for a specified command.
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Basically,
whereis
searches for "possibly useful" files, whilewhich
only searches for executables.
I rarely use
whereis
. On the other hand,which
is very useful, specially in scripts.which
is the answer for the following question: Where does this command come from?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
add a comment |
This answer on Super User by Denilson Sá Maia may be useful:
which
searches your user-specific PATH (which may include some of the locations whereis searches, and may not include others - it might also include some places thatwhereis
doesn't search if you'd added to your PATH).
whereis
searches the standard *nix locations for a specified command.
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Basically,
whereis
searches for "possibly useful" files, whilewhich
only searches for executables.
I rarely use
whereis
. On the other hand,which
is very useful, specially in scripts.which
is the answer for the following question: Where does this command come from?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
This answer on Super User by Denilson Sá Maia may be useful:
which
searches your user-specific PATH (which may include some of the locations whereis searches, and may not include others - it might also include some places thatwhereis
doesn't search if you'd added to your PATH).
whereis
searches the standard *nix locations for a specified command.
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Basically,
whereis
searches for "possibly useful" files, whilewhich
only searches for executables.
I rarely use
whereis
. On the other hand,which
is very useful, specially in scripts.which
is the answer for the following question: Where does this command come from?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
edited Dec 14 '18 at 5:46
Zanna
50.7k13135241
50.7k13135241
answered Dec 12 '18 at 13:08
maturemature
1,8331724
1,8331724
add a comment |
add a comment |
According to manual of which
:
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not canonicalize path names.
According to manual of whereis
:
whereis locates the binary, source and manual files for the specified command names. The supplied names are first stripped of leading pathname components and any (single) trailing extension of the form .ext (for example: .c) Prefixes of s. resulting from use of source code control are also dealt with. whereis then attempts to locate the desired program in the standard Linux places, and in the places specified by $PATH and $MANPATH.
So clearly there is a very thin of difference among them. which
results include path of executable file while whereis
results in binaries and documentation.
For example, consider java:
which
results in just one path, i.e. path of java executable file
/usr/bin/java
whereis
results in about paths, i.e. path of java binary, source and manual
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
add a comment |
According to manual of which
:
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not canonicalize path names.
According to manual of whereis
:
whereis locates the binary, source and manual files for the specified command names. The supplied names are first stripped of leading pathname components and any (single) trailing extension of the form .ext (for example: .c) Prefixes of s. resulting from use of source code control are also dealt with. whereis then attempts to locate the desired program in the standard Linux places, and in the places specified by $PATH and $MANPATH.
So clearly there is a very thin of difference among them. which
results include path of executable file while whereis
results in binaries and documentation.
For example, consider java:
which
results in just one path, i.e. path of java executable file
/usr/bin/java
whereis
results in about paths, i.e. path of java binary, source and manual
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
add a comment |
According to manual of which
:
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not canonicalize path names.
According to manual of whereis
:
whereis locates the binary, source and manual files for the specified command names. The supplied names are first stripped of leading pathname components and any (single) trailing extension of the form .ext (for example: .c) Prefixes of s. resulting from use of source code control are also dealt with. whereis then attempts to locate the desired program in the standard Linux places, and in the places specified by $PATH and $MANPATH.
So clearly there is a very thin of difference among them. which
results include path of executable file while whereis
results in binaries and documentation.
For example, consider java:
which
results in just one path, i.e. path of java executable file
/usr/bin/java
whereis
results in about paths, i.e. path of java binary, source and manual
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
According to manual of which
:
which returns the pathnames of the files (or links) which would be executed in the current environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments. It does not canonicalize path names.
According to manual of whereis
:
whereis locates the binary, source and manual files for the specified command names. The supplied names are first stripped of leading pathname components and any (single) trailing extension of the form .ext (for example: .c) Prefixes of s. resulting from use of source code control are also dealt with. whereis then attempts to locate the desired program in the standard Linux places, and in the places specified by $PATH and $MANPATH.
So clearly there is a very thin of difference among them. which
results include path of executable file while whereis
results in binaries and documentation.
For example, consider java:
which
results in just one path, i.e. path of java executable file
/usr/bin/java
whereis
results in about paths, i.e. path of java binary, source and manual
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
edited Dec 12 '18 at 13:18
answered Dec 12 '18 at 13:12
KulfyKulfy
4,43651542
4,43651542
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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%2faskubuntu.com%2fquestions%2f1100315%2fwhereis-returns-different-path-to-which%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
4
type rm
is likely to be more reliable than either - since it will show any path that has been cached by the shell– steeldriver
Dec 12 '18 at 13:20
1
What version of Ubuntu are you running? A default installation of Ubuntu will have the command
rm
contained only in the/bin
folder in the path. Everything I am finding for thatwhich
command is that it comes frombrew
installing thecoreutils
on a Mac.– Terrance
Dec 12 '18 at 14:45
1
Are you using Mac OSX? @user10726006
– Fabby
Dec 14 '18 at 8:06