设$foo
和$bar
为两个绝对目录名(由 输出realpath
)。我想测试任何一个是否包含在另一个中,在任何深度,并相应地执行命令。
我以为我会使用find
,但它的退出状态并不能说明是否找到了某些东西。所以我来了:
if [ x$(find -H "$foo" -path "$bar" -printf y -quit) == xy \
-o x$(find -H "$bar" -path "$foo" -printf y -quit) == xy ] ; then
...
fi
这是对的吗?有没有更简单的?
上下文:我的主目录包含一个加密文件夹(ecryptfs)。我正在编写一个脚本,将其参数同步到云端。我不希望同步解密文件,所以我将测试参数是否与加密文件夹重叠以在同步之前卸载 ecryptfs。
我不确定我是否完全理解问题和上下文。但也许这有效:
请注意,如果一棵树符号链接到另一棵树,这将不起作用。