Linux bash:查找包含特定文本的文件夹

时间:2017-02-14 20:56:40

标签: 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 -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

我需要包含在数组中的文件夹名称,以便以后可以用它们来操作它们中的数据。

1 个答案:

答案 0 :(得分:1)

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

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