在bash中遍历子目录

我们如何迭代给定目录的子目录,并在bash中的子目录中获取文件.我可以使用grep命令吗?
最佳答案
这将深入一个子目录.内部for循环将遍历封闭的文件和目录. if语句将排除目录.您可以设置选项以包含隐藏文件和目录(shopt -s dotglob).

shopt -s nullglob
for dir in /some/dir/*/
do
    for file in "$dir"/*
    do
        if [[ -f $file ]]
        then
            do_something_with "$file"
        fi
    done
done

这将是递归的.您可以使用-maxdepth选项限制深度.

find /some/dir -mindepth 2 -type f -exec do_something {} \;

使用-mindepth会排除当前目录中的文件,但它包含下一级(及以下,取决于-maxdepth)的文件.

转载注明原文:在bash中遍历子目录 - 代码日志