首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shell脚本-使用shell脚本遍历子目录

Shell脚本-使用shell脚本遍历子目录
EN

Stack Overflow用户
提问于 2018-09-18 15:58:51
回答 2查看 142关注 0票数 0

我正在尝试遍历当前目录下的子目录。我想在每个子目录中访问和处理某些文件。有人可以帮助我如何访问子目录中的文件吗?

代码语言:javascript
复制
"
for dir in /home/ayushi/perfios/fraud_stmt/*; 
do echo $dir;


done;
"

上面的脚本将回显所有子目录。但我不想回显,而是想进入目录并访问其中存在的文件。

EN

回答 2

Stack Overflow用户

发布于 2018-09-18 16:02:21

代码语言:javascript
复制
find /home/ayushi/perfios/fraud_stmt/ -type f | while read fname; do
    : do something on $fname here
done

这将从指定目录向下搜索所有文件(即不是实际目录)。请注意,您应该用双引号将"$fname“括起来,以防它包含空格或其他”奇数“字符。

票数 1
EN

Stack Overflow用户

发布于 2018-09-18 16:53:36

使用递归函数的示例

代码语言:javascript
复制
process_file() {
    echo "$1"
}

rec_traverse() {
    local file_or_dir
    for file_or_dir in "$1"/*; do
        [[ -d $file_or_dir ]] && rec_traverse "$file_or_dir"
        [[ -f $file_or_dir ]] && process_file "$file_or_dir"
    done
}

rec_traverse /home/ayushi/perfios/fraud_stmt

可以将

  • process_file更改为在file.
  • "$1"/*上执行某些操作可以更改为"$1"/* "$1"/.*以匹配隐藏目录,但在这种情况下,必须过滤特殊的硬链接目录...以避免无限循环。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52381682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档