我想循环遍历匹配模式的文件。它们可以在当前目录或子目录中。
我试着:
for file in **/$_pat*; do
但是它只查找子目录中的文件。我也把下面的命令放在bashrc
和脚本中,但它仍然不起作用。
shopt -s globstar
shopt
在脚本中不被识别。
shopt: not found
使用find
:
find "$_path" -type f -iname "*your_pattern*"
地点:
-iname
=模式不区分大小写的匹配
-type f
=只搜索常规文件,省略目录或链接
在循环中使用:
find "$_path" -type f -iname "*your_pattern*"|while read file
do
echo "$file"
done
for
循环将不工作,如果你在结果中有空格,而while
读取每个while行
根据您的最终目标,您可以在find中使用-exec:
find "$_path" -type f -iname "*your_pattern*" -exec echo {} ;
其中{}
表示匹配的行/文件'
你还需要在末尾加上;