How to find the filename of a script being run when it is executed from a symlink on linux
If I have a python script that is executed via a symlink, is there a way that I can find the path to the script rather than the symlink? I've tried using the methods suggested in this question, but they always return the path to the symlink, not the script.
For example, when this is saved as my "/usr/home/philboltt/scripts/test.py" :
#!/usr/bin/python import sys print sys.argv print __file__
and I then create this symlink
ln -s /usr/home/philboltt/scripts/test.py /usr/home/philboltt/test
and execute the script using
I get the following output:
You want the os.path.realpath() function.
I believe you will need to check if the file is a symlink, and if so, get where it is linked to. For example...
try: print os.readlink(__file__) except: print "File is not a symlink"