Using Python, I need to check whether hundreds of symlinks are correct and recreate them when not. What I do now is to compare real paths of what I want and what I have, but it's slow because it's over NFS with an automount.
Otherwise I'm going to run a subprocess with the command 'ls -l
' and work on the list of strings returned. I would prefer a better solution, using a Python library...
Edit1: I have: link_name -> link_target
and then link_target -> a_real_file
. What I need is to extract link_target
from link_name
, not a_real_file
. I don't care if the real file does not exist.
Edit2: Maybe I did not express correctly. What I mean by a correct symlink is 'a link that point to a predefined path, even if it does not exist'. So I need to check that:
link_name_1 -> target_1
link_name_2 -> target_2
That's why I need to extract targets, not the real paths. Then I compare them to a reference (dictionary). So my question is: How do I extract the target path?