Issue with type force PATH search
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
This is Bash. The behavior is similar in fish.
$ which python
/usr/bin/python
$ alias py=python
$ type py
py is aliased to `python'
And then, running type -P py
prints nothing, where as I expected to print /usr/bin/pyton
in a similar fashion to what is seen below.
$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/bin/ls
The documentation for the -P
option reads
-P force a PATH search for each NAME, even if it is an alias,
builtin, or function, and returns the name of the disk file
that would be executed
I've confirmed that /usr/bin
(the directory where python
is located) is in PATH
.
What is going on here?
bash fish shell-builtin
add a comment |
This is Bash. The behavior is similar in fish.
$ which python
/usr/bin/python
$ alias py=python
$ type py
py is aliased to `python'
And then, running type -P py
prints nothing, where as I expected to print /usr/bin/pyton
in a similar fashion to what is seen below.
$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/bin/ls
The documentation for the -P
option reads
-P force a PATH search for each NAME, even if it is an alias,
builtin, or function, and returns the name of the disk file
that would be executed
I've confirmed that /usr/bin
(the directory where python
is located) is in PATH
.
What is going on here?
bash fish shell-builtin
add a comment |
This is Bash. The behavior is similar in fish.
$ which python
/usr/bin/python
$ alias py=python
$ type py
py is aliased to `python'
And then, running type -P py
prints nothing, where as I expected to print /usr/bin/pyton
in a similar fashion to what is seen below.
$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/bin/ls
The documentation for the -P
option reads
-P force a PATH search for each NAME, even if it is an alias,
builtin, or function, and returns the name of the disk file
that would be executed
I've confirmed that /usr/bin
(the directory where python
is located) is in PATH
.
What is going on here?
bash fish shell-builtin
This is Bash. The behavior is similar in fish.
$ which python
/usr/bin/python
$ alias py=python
$ type py
py is aliased to `python'
And then, running type -P py
prints nothing, where as I expected to print /usr/bin/pyton
in a similar fashion to what is seen below.
$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/bin/ls
The documentation for the -P
option reads
-P force a PATH search for each NAME, even if it is an alias,
builtin, or function, and returns the name of the disk file
that would be executed
I've confirmed that /usr/bin
(the directory where python
is located) is in PATH
.
What is going on here?
bash fish shell-builtin
bash fish shell-builtin
edited Apr 4 at 9:08
Git Gud
asked Apr 4 at 8:50
Git GudGit Gud
1375
1375
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
This:
force a PATH search for each NAME, even if it is an alias,
does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo
, and also an alias foo
, the type -P foo
will still look for the command named foo
, even though there's an alias masking it. So bash isn't expanding py
in type -P py
to be python
, and it won't show /usr/bin/python
.
Well, this could be clearer. Thanks.
– Git Gud
Apr 4 at 8:56
Seems clear enough.NAME
is the argument totype
, not an alias expansion of the argument.
– chepner
Apr 4 at 18:42
add a comment |
What’s going on is that your shell is looking for a binary named py
in each directory on your PATH
, and not finding any.
type -P
doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.
(There’s an added subtlety with type -p
and type -P
: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH
. But that’s not involved here.)
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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%2funix.stackexchange.com%2fquestions%2f510450%2fissue-with-type-force-path-search%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:
force a PATH search for each NAME, even if it is an alias,
does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo
, and also an alias foo
, the type -P foo
will still look for the command named foo
, even though there's an alias masking it. So bash isn't expanding py
in type -P py
to be python
, and it won't show /usr/bin/python
.
Well, this could be clearer. Thanks.
– Git Gud
Apr 4 at 8:56
Seems clear enough.NAME
is the argument totype
, not an alias expansion of the argument.
– chepner
Apr 4 at 18:42
add a comment |
This:
force a PATH search for each NAME, even if it is an alias,
does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo
, and also an alias foo
, the type -P foo
will still look for the command named foo
, even though there's an alias masking it. So bash isn't expanding py
in type -P py
to be python
, and it won't show /usr/bin/python
.
Well, this could be clearer. Thanks.
– Git Gud
Apr 4 at 8:56
Seems clear enough.NAME
is the argument totype
, not an alias expansion of the argument.
– chepner
Apr 4 at 18:42
add a comment |
This:
force a PATH search for each NAME, even if it is an alias,
does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo
, and also an alias foo
, the type -P foo
will still look for the command named foo
, even though there's an alias masking it. So bash isn't expanding py
in type -P py
to be python
, and it won't show /usr/bin/python
.
This:
force a PATH search for each NAME, even if it is an alias,
does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo
, and also an alias foo
, the type -P foo
will still look for the command named foo
, even though there's an alias masking it. So bash isn't expanding py
in type -P py
to be python
, and it won't show /usr/bin/python
.
answered Apr 4 at 8:55
murumuru
37.2k589164
37.2k589164
Well, this could be clearer. Thanks.
– Git Gud
Apr 4 at 8:56
Seems clear enough.NAME
is the argument totype
, not an alias expansion of the argument.
– chepner
Apr 4 at 18:42
add a comment |
Well, this could be clearer. Thanks.
– Git Gud
Apr 4 at 8:56
Seems clear enough.NAME
is the argument totype
, not an alias expansion of the argument.
– chepner
Apr 4 at 18:42
Well, this could be clearer. Thanks.
– Git Gud
Apr 4 at 8:56
Well, this could be clearer. Thanks.
– Git Gud
Apr 4 at 8:56
Seems clear enough.
NAME
is the argument to type
, not an alias expansion of the argument.– chepner
Apr 4 at 18:42
Seems clear enough.
NAME
is the argument to type
, not an alias expansion of the argument.– chepner
Apr 4 at 18:42
add a comment |
What’s going on is that your shell is looking for a binary named py
in each directory on your PATH
, and not finding any.
type -P
doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.
(There’s an added subtlety with type -p
and type -P
: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH
. But that’s not involved here.)
add a comment |
What’s going on is that your shell is looking for a binary named py
in each directory on your PATH
, and not finding any.
type -P
doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.
(There’s an added subtlety with type -p
and type -P
: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH
. But that’s not involved here.)
add a comment |
What’s going on is that your shell is looking for a binary named py
in each directory on your PATH
, and not finding any.
type -P
doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.
(There’s an added subtlety with type -p
and type -P
: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH
. But that’s not involved here.)
What’s going on is that your shell is looking for a binary named py
in each directory on your PATH
, and not finding any.
type -P
doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.
(There’s an added subtlety with type -p
and type -P
: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH
. But that’s not involved here.)
answered Apr 4 at 8:54
Stephen KittStephen Kitt
180k25409488
180k25409488
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- 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%2funix.stackexchange.com%2fquestions%2f510450%2fissue-with-type-force-path-search%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