如果存在于BASH中,则在变量中查找存储文件夹的完整路径

时间:2016-07-12 11:32:24

标签: bash path find

我需要获取与特定名称匹配的文件夹(如果存在)的完整路径。始终有一个与名称匹配的文件夹。 例如:代码必须找到具有以下可能名称的文件夹(如果存在):

/home/user/myfolder
/home/user/myfolder_aaa
/home/user/myfolder_bbb
/home/user/myfolder_ccc

它必须与任何其他“类似”文件夹不匹配,例如

/home/user/myfolder_xxx

如果文件夹存在,我需要在变量中保存完整路径 这样的东西也匹配不需要的情况,并没有重试完整的路径:

path=`ls /home/user/myfolder*`

2 个答案:

答案 0 :(得分:1)

只有少量的可能性和一个目标目录,这就足够了:

top_level='myfolder'

for end in '' '_aaa' '_bbb' '_ccc'
do
    name=$top_level$end
    if [[ -d $name ]]
    then
        var="$name"
        break
    fi
done

echo "$var found"

答案 1 :(得分:0)

您可以将var noteText : String?与正则表达式一起使用:

find

将结果存储在数组中(因为这些文件夹名称中似乎没有空格):

find ./home/user -regextype posix-extended -type f -regex '.*/myfolder(_(aaa|bbb|ccc))?$'