列出不是符号链接目标的目录

时间:2020-10-23 08:33:16

标签: bash directory

使用Bash shell。

我有一个包含大量子目录的目录。

符号链接指向其中一些。这使得管理内容非常方便,因为符号链接比目录名称具有更具表达性的名称。

对于其他一些目录,此重定向作业仍未完成。

是否有一种Bash方式来列出符号链接没有目标的目录(如果简化,则包含在同一父文件夹中)? 对我来说,这将返回我仍然需要处理的目录,并省去一些容易出错的驴子工作。

1 个答案:

答案 0 :(得分:4)

解决方案需要GNU CoreUtils:

#!/usr/bin/env sh

{
  # Create a list of null delimited symbolic links destination
  find . -type l -printf ./%l\\0

  # Append directories to the null delimited list
  find . -type d -print0
} |

# Sort the null delimited list
sort -z |

# Extract unique entries (those having no symbolic link)
uniq -zu |

# Produce a human-readable list by replacing null delimiters by newlines
xargs -0l