【发布时间】:2018-01-23 15:31:30
【问题描述】:
我需要在 mac/linux 上执行此操作:
- 给定:一些目录,例如 /usr/local/lib/node_modules
- 查找:所有指向给定目录中任何文件的符号链接的链接
我想删除这些链接,因为该目录不再存在并提供更清洁的工作环境。
【问题讨论】:
标签: bash shell find posix symlink
我需要在 mac/linux 上执行此操作:
我想删除这些链接,因为该目录不再存在并提供更清洁的工作环境。
【问题讨论】:
标签: bash shell find posix symlink
你可以用这个问题的答案来做到这一点:
Linux: Find all symlinks of a given 'original' file? (reverse 'readlink')
基本思想是您在每个目录上执行ls -al 并查找内容以查看它是否包含该目录作为链接的目标(而不是前面答案中的文件)。只需将/usr/share/applications 替换为您的目录,.* 即可匹配所有文件或子文件夹。 \-> 确保它匹配链接目标而不是普通文件名。
例子:
pax$ find / -exec ls -ald {} ';' 2>/dev/null | grep '\-> /usr/share/applications.*'
lrwxrwxrwx 1 pax pax 23 2010-06-12 14:56 /home/pax/applications_usr_share
-> /usr/share/applications
【讨论】: