如何使用 bash 循环多个子目录来查找文件

如何使用 bash 循环多个子目录来查找文件

我需要循环遍历多个子目录来查找 fastq 文件。

fastq 文件位于 /path/sample/a/b/c/.fastq

目前我用这个:

${inputDir}/**/**/**/*.fastq 

我的输入目录仅为:/path/sample,因为它的三个子文件夹我使用“/**/”三次。但有时子文件夹可能不会改变。

有没有其他有效的方法来循环多个子目录。

我的 bash 脚本:

#! /bin/bash -l

CWD=$(pwd)
dateStamp=$(date +%s)
SeqProj="${inputDir}/**/**/**/*.fastq"

for Dir in $SeqProj
do

done

答案1

find / -iname '*.fastq' -exec /path/to/foo.sh {} \;

然后foo.sh是一个脚本,它执行您在循环内调用的任何操作,使用 $1 引用找到的文件,并将其名称传递给脚本。

迈克的答案也有效,这实际上取决于你想用它做什么......

答案2

最简单的方法是使用find

for Dir in $(find "$inputDir" -name '*.fastq')

相关内容