Il 12/10/2022 20:19, MRAB ha scritto:
On 2022-10-12 06:11, jak wrote:
Il 12/10/2022 06:00, Paulo da Silva ha scritto:
Hi!

The simple question: How do I find the full path of a shell command (linux), i.e. how do I obtain the corresponding of, for example,
"type rm" in command line?

The reason:
I have python program that launches a detached rm. It works pretty well until it is invoked by cron! I suspect that for cron we need to specify the full path. Of course I can hardcode /usr/bin/rm. But, is rm always in /usr/bin? What about other commands?

Thanks for any comments/responses.
Paulo


I'm afraid you will have to look for the command in every path listed in
the PATH environment variable.

Isn't that what the "whereis" command does?

"whereis" does more than the OP wants. A suitable command could be
"which" but if the OP is in a context where he needs to know the path
of the command, then it will have the same problem with "whereis" or
"which". In any case they would be a few lines of Python:

import os

def which(c):
    for p in os.getenv('PATH').split(os.path.pathsep):
        if p and os.path.isfile(f := os.path.join(p, c)):
            return f
    return ''

cmd = 'explorer.exe'
cmdp = which(cmd)

if cmdp:
    print("found:", cmdp)
else:
    print("not found"

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to