| #! /usr/local/python |
| |
| # findlinksto |
| # |
| # find symbolic links to a given path |
| |
| import posix, path, sys |
| |
| def visit(pattern, dirname, names): |
| if path.islink(dirname): |
| names[:] = [] |
| return |
| if path.ismount(dirname): |
| print 'descend into', dirname |
| n = len(pattern) |
| for name in names: |
| name = path.join(dirname, name) |
| try: |
| linkto = posix.readlink(name) |
| if linkto[:n] = pattern: |
| print name, '->', linkto |
| except posix.error: |
| pass |
| |
| def main(pattern, args): |
| for dirname in args: |
| path.walk(dirname, visit, pattern) |
| |
| main(sys.argv[1], sys.argv[2:]) |