On 2022-10-12, Paulo da Silva <p_d_a_s_i_l_v_a...@nonetnoaddress.pt> wrote:
> Às 05:00 de 12/10/22, Paulo da Silva escreveu:
>> 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?
>> 
> Thank you all who have responded so far.
> I think that the the suggestion of searching the PATH env seems the best.
> Another thing that I thought of is that of the 'which', but, to avoid 
> the mentioned recurrent problem of not knowing where 'which' is I would 
> use 'type' instead. 'type' is a bash (sh?) command.

If you're using subprocess.run / subprocess.Popen then the computer is
*already* searching PATH for you. Your problem must be that your cron
job is being run without PATH being set, perhaps you just need to edit
your crontab to set PATH to something sensible. Or just hard-code your
program to run '/bin/rm' explicitly, which should always work (unless
you're on Windows, of course!)
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to