我有超过 200 个 WordPress 网站/home2/blogname/public_html/
,我需要找到哪些博客在插件目录下没有一个名为“better-wp-security”的子目录,例如:/home2/blogname/public_html/wp-content/plugins/
原因是要知道哪些博客没有安装“better-wp-security”插件
具有该目录的博客将显示如下内容:
/home2/blogname/public_html/wp-content/plugins/better-wp-security/
...所以我需要列出/home2/blogname
没有该目录的博客(/)的主要目录。
我怎样才能做到这一点?。
答案1
您可以使用 来完成此操作find
,但也可以使用 shell 循环:
for dir in /home2/blogname/*
do
[ -d "$dir"/public_html/wp-content/plugins/better-wp-security ] || printf '%s is missing a public_html/wp-content/plugins/better-wp-security directory\n' "$dir"
done
使用 GNU 查找:
find /home2/blogname -mindepth 1 -maxdepth 1 -exec sh -c \
'test ! -d "$1"/public_html/wp-content/plugins/better-wp-security' findsh {} \; -print
这将对 /home2/blogname 下的每个条目(除 /home2/blogname 本身外,给定 )运行一个小的 shell 片段,-mindepth 1
而不对 /home2/blogname/* 的任何子目录(给定 )运行-maxdepth 1
。该片段检查给定的目录是否具有列出的子目录结构;如果没有,则通过并test
打印。