我有一台通过网络共享用户主文件夹的服务器。每个用户都有一个缓存文件夹。有时使用符号链接将此文件夹重定向到他们正在使用的任何机器的硬盘驱动器(有时这不起作用并且他们的符号链接损坏[这是另一天的问题]。)
我试图找出哪些用户有符号链接,哪些没有。在共享文件夹中,要访问缓存文件夹,您可以像这样替换文件夹:
$GRADE/$USERNAME/图书馆/缓存
现在我正在寻找哪些用户有符号链接,哪些没有。我想出了:
cd /path/to/shared/home/folders
sudo find . -name "Caches" -exec ls -ld {} \;
并得到这样的结果:
lrwxr-xr-x@ 1 name0 ES_Students 27 Jan 18 11:05 ./CES_Grade_03/name0/Library/Caches -> /tmp/name0/Library/Caches
drwx------ 11 name1 ES_Students 374 Dec 8 15:44 ./CES_Grade_03/name1/Library/Caches
lrwxr-xr-x@ 1 name2 ES_Students 27 Feb 23 14:27 ./CES_Grade_03/name2/Library/Caches -> /tmp/name2/Library/Caches
drwx------ 17 name3 ES_Students 578 Jan 25 11:13 ./CES_Grade_03/name3/Library/Caches
drwx------ 12 name4 ES_Students 408 Mar 22 13:09 ./CES_Grade_03/name4/Library/Caches
但它一直困扰着我,必须有更好的方法。是的,它已经足够好了,而且是一次性的任务,但我想知道如何正确地完成它!当然,我应该能够执行以下操作:
cd /path/to/shared/home/folders
sudo ls -ld **/**/Library/Caches
恐怕我不知道正确的语法,或者 bash 中是否存在递归文件夹替换通配符格式,而我的 google-fu 让我失望了。
那么,我该如何正确地制定搜索呢?