检查一个目录是否包含另一个目录

如何检查给定的目录是否包含shell中的另一个目录。 我想传递2个完整path目录。 (我知道这是愚蠢的,但只是为了学习的目的)。 那么我想看看这两条path中的任何一条是否包含在另一条path中。

parent=$1 child=$2 if [ -d $child ]; then echo "YES" else echo "NO" fi 

但是这不使用父目录。 只检查孩子是否存在。

您可以使用find来查看是否在另一个名称中包含一个名称:

 result=$(find "$parent" -type d -name "$child") if [[ -n $result ]] then echo YES else echo NO fi 

你可以在纯bash中完成这个。 循环遍历$ 1中的每个文件,看看“$ 1 / $ 2”是否是一个dir,如下所示:

 parent=$1 child=$(basename $2) if [ -d $parent ] && [ -d $child ]; then for child in $parent; do if [ -d "$parent/$child" ]; then echo "Yes" else echo "No" fi done fi