Linux

如何在 Bash 中使用正則表達式測試文件夾是否存在?

  • April 3, 2019

眾所周知,我們可以通過以下 bash 命令輕鬆檢查文件夾是否存在

[[ -d /opt/presto-server ]] && echo folder exist

但是當我們有文件夾時

/opt/presto-server-32.34

那麼如何使用正則表達式來驗證該文件夾是否存在

有了這個規則

presto-server-<any charecter>

作為

presto-server-454.545
presto-server-4a-434
presto-server-aa-434-l

ETC

我會計算萬用字元的擴展產生了多少參數。首先,我會設置nullglob,如果沒有匹配項,我們會得到預期的零而不是萬用字元本身。

shopt -s nullglob

然後要求擴展所需的模式並將它們設置為目前參數:

set -- /opt/presto-server-*/

請注意尾部斜杠的添加——這要求結果匹配是目錄(或目錄的符號連結)。

然後問有多少:

[ "$#" -gt 0 ] && echo "There are one or more presto-server- directories"

引用自:https://unix.stackexchange.com/questions/510300