我目前正在我的一个课程中研究Linux设备上的shell脚本,并且我已经设法获得了迄今为止超出我技能的额外任务。
我的任务是编写一个shell脚本,找到指向空文件夹的符号链接。现在前两个部分很简单 - 我知道如何将find
命令用于-type l
和-xtype d
等测试。问题来自检查文件夹本身是否为空。我问过我的老师,但我所得到的都是关于xargs
或exec
这些论据的神秘暗示,我根据说明实际上不允许使用这些论点。到目前为止,我最好的选择是将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
非常感谢任何帮助!
答案 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/*