Arrays LinuxBash:查找包含特定文本的文件夹

Arrays LinuxBash:查找包含特定文本的文件夹,arrays,linux,bash,text,directory,Arrays,Linux,Bash,Text,Directory,昨天我学习了如何使用一个脚本来显示包含输入文本的所有文件 echo "enter serial number" read number matchfiles=(`find /home/data_files -maxdepth 1 -name "*$number*" -type f -exec basename {} \;`) COUNTER=${#matchfiles[@]} echo serial number data folder found: until [ $COUNTER -

昨天我学习了如何使用一个脚本来显示包含输入文本的所有文件

echo "enter serial number"
read number

matchfiles=(`find /home/data_files -maxdepth 1 -name "*$number*" -type f -exec basename {} \;`)

COUNTER=${#matchfiles[@]}

echo serial number data folder found:
until [  $COUNTER -lt 0 ]; do
echo ${matchfiles[$COUNTER]}
let COUNTER-=1
done
如果输入数字12,它将输出文件名名称中包含数字12的所有文件

例如:

enter serial number
12
file12.fee
12file.foo
file.12
我正在寻找一种方法来做完全相同的事情,但与目录

因此,输出将是

enter serial number
12
folder12
12folder
我需要数组中包含的文件夹名称,以便以后可以使用它们来处理其中的数据

find {path} -name "*$number*" -type d -exec readlink -f {} \;

如果可选的{path}是相对的,则需要readlink-f将相对路径转换为绝对路径。如果要限制目录路径中的递归搜索,可能需要添加back-maxdepth。

-type d将限制搜索目录名称。@karakfa当然。。。哈哈。非常感谢。