【发布时间】:2021-11-11 07:11:00
【问题描述】:
目录位置:/var/lib/messageFunction-7834bdfjsdfj783/data/snapshot
我有上述目录,我需要使用 bash 脚本查找该目录是否存在。
#!/bin/bash
if [ ! -d "/var/lib/messageFunction-*/data/snapshot" ]; then
echo NO FOLDER
else
echo FOLDER IS THERE
fi
上述脚本始终返回“NO FOLDER”,但该目录存在于该位置。您能指导如何使用正则表达式来识别子目录吗?
谢谢
【问题讨论】:
-
'*'不在引号内展开。它实际上是在测试名为/var/lib/messageFunction-*/data/snapshot的目录,该目录将不存在。如下所示的迭代解决方案是正确的方法,或者使用find并循环输出(或grep等。)同样在路径名扩展中'*'是文件名通配符的一部分,而不是正则表达式。 . -
如果有多个目录匹配 glob
/var/lib/messageFunction-*/data/snapshot怎么办? -
关于为什么不引用
*可能有更好的副本,但我想你已经解决了这个问题。