Bash 查找目录名

Bash 查找目录名

我有一个脚本,它接受数字然后将其移动到变量$n。问题我们如何找到名称中包含此字符/数字的目录?

答案1

由于您只想查看一级目录,因此可以使用 shell glob*$n*

ls ./*"$n"*

但这不会区分文件和目录。所以你可以使用循环并检查每种类型

for f in *"$n"*
do
    if [ -d "$f" ]
    then
        printf "%s\n" "$f"
    fi
done

或者使用find,但请注意,这会将任何特殊字符解释$n为模式匹配的一部分。

find . -maxdepth 1 -type d -name "*$n*"

在这种特殊情况下,您还可以使用此变体

find ./*"$n"* -maxdepth 0 -type d

相关内容