#!/usr/bin/env python3 import os import sys from pathlib import Path top = os.path.abspath(sys.argv[1]) for dirpath, dirname, filenames in os.walk(top): for filename in filenames: path = os.path.join(dirpath, filename) if os.path.islink(path): target = Path(path).resolve() if not target.exists(): print('broken link: %s' % path) if not str(target).startswith(top): print('illegal link: %s' % path)