我正在尝试做的事情:
我希望主文件夹中的每个目录都包含一个共享文件夹,我将在其中放置一些共享文件供大家阅读。我还将共享文件夹存储在 home 中。目录结构如下所示:
home
---user1
------shared
------someFolder
---user2
------someFolder
---shared
我想确保我没有在其内部插入指向共享文件夹的链接。我还想检查文件夹是否有共享文件夹的链接。如果它已经有一个链接,那么什么都不做。如果它没有链接,则创建一个。
这是我的代码:
for d in */ ; do
if [ "$d" != "shared/" ]
then
shared_exists=false
for e in "$d"*/; do
#echo "$e"
if [ "$e" = $d"shared/" ]
then
shared_exists=true
fi
done
if [ "$shared_exists" = true ]
then
echo "shared exists in $d"
else
echo "Shared does not exist in $d"
sudo ln -s /home/shared/ /home/"$d"
fi
fi
done
这是正确的方法还是有更好的方法?
您可以将该代码重构为更短的代码:
shopt -s extglob nullglob
cd /home
for d in !(shared)/; do
[[ ! -e "$d"shared ]] && ln -s "$PWD/shared" "$d"shared
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句