/
githubmirror
/
os-python3.9
Обзор
Документация
Войти
/
githubmirror
/
os-python3.9
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
bullseye
Tools/scripts/findlinksto.py
43 строки
1 KB
Huw Jones
Imported Upstream version 3.9.2
21 мар 2022, 14:02
21 мар 2022, 14:02
0946962
Код
Авторство
О чём код?
#! /usr/bin/env python3 # findlinksto # # find symbolic links to a path matching a regular expression import os import sys import re import getopt def main(): try: opts, args = getopt.getopt(sys.argv[1:], '') if len(args) < 2: raise getopt.GetoptError('not enough arguments', None) except getopt.GetoptError as msg: sys.stdout = sys.stderr print(msg) print('usage: findlinksto pattern directory ...') sys.exit(2) pat, dirs = args[0], args[1:] prog = re.compile(pat) for dirname in dirs: os.walk(dirname, visit, prog) def visit(prog, dirname, names): if os.path.islink(dirname): names[:] = [] return if os.path.ismount(dirname): print('descend into', dirname) for name in names: name = os.path.join(dirname, name) try: linkto = os.readlink(name) if prog.search(linkto) is not None: print(name, '->', linkto) except OSError: pass if __name__ == '__main__': main()