如何检查符号链接是否指向空文件夹

时间:2017-03-23 17:36:43

标签: bash shell

我目前正在我的一个课程中研究Linux设备上的shell脚本,并且我已经设法获得了迄今为止超出我技能的额外任务。

我的任务是编写一个shell脚本,找到指向空文件夹的符号链接。现在前两个部分很简单 - 我知道如何将find命令用于-type l-xtype d等测试。问题来自检查文件夹本身是否为空。我问过我的老师,但我所得到的都是关于xargsexec这些论据的神秘暗示,我根据说明实际上不允许使用这些论点。到目前为止,我最好的选择是将find的结果抛入for循环并测试我从每个循环中的链接获得的路径,但这似乎不起作用。到目前为止,我的代码看起来像这样:

for var in $`find $1/* -type l -xtype d -print`
do
  if [ $`readlink -f $var` -empty ]
  then
    echo $`readlink -f $var`
  fi
done

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您是否正在寻找-empty选项来查找?

$ mkdir empty_folder
$ ln -s empty_folder/ symlink
$ find symlink -type d -empty
symlink

这也可以通过文件名扩展来完成。

$ shopt -s dotglob failglob
$ true symlink/*
bash: no match: symlink/*