5 # find symbolic links to a path matching a regular expression
14 opts
, args
= getopt
.getopt(sys
.argv
[1:], '')
16 raise getopt
.GetoptError('not enough arguments', None)
17 except getopt
.GetoptError
as msg
:
18 sys
.stdout
= sys
.stderr
20 print('usage: findlinksto pattern directory ...')
22 pat
, dirs
= args
[0], args
[1:]
23 prog
= re
.compile(pat
)
25 os
.walk(dirname
, visit
, prog
)
27 def visit(prog
, dirname
, names
):
28 if os
.path
.islink(dirname
):
31 if os
.path
.ismount(dirname
):
32 print('descend into', dirname
)
34 name
= os
.path
.join(dirname
, name
)
36 linkto
= os
.readlink(name
)
37 if prog
.search(linkto
) is not None:
38 print(name
, '->', linkto
)
42 if __name__
== '__main__':