归档链接到特定目录中任何文件的所有文件

时间:2018-01-23 15:31:30

标签: bash shell find posix symlink

我需要在mac / linux上执行此操作:

  • 给定:某些目录,例如/ usr / local / lib / node_modules
  • 查找:指向给定目录中任何文件的符号链接的所有链接

我想删除这些链接,因为该目录不再存在,并提供更清洁的工作环境。

1 个答案:

答案 0 :(得分:0)

你可以用这个问题的答案来做到这一点:

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