如何递归遍历目录树并仅查找文件?

2023-11-30

我正在研究一个scp调用以下载远程系统上存在的文件夹。下载的文件夹有子文件夹,在这些子文件夹中有一堆文件,我想将它们作为参数传递给 python 脚本,如下所示:

scp -r [email protected]:SomeName/SomeNameElse/$folder_name/ $folder_name/
echo "File downloaded successfully"
echo "Running BD scanner"
for d in $folder_name/*; do
        if [[ -d $d ]]; then
                echo "It is a directory"
        elif [[ -f $d ]]; then
                echo "It is a file"
                echo "Running the scanner :"
                 python bd_scanner_new.py /home/nsadmin/Some/bash_script_run_files/$d
        else
                echo "$d is invalid file"
                exit 1
        fi
done

我添加了逻辑来查找是否有任何目录并排除它们。但是,我不会递归地遍历这些目录。

部分结果如下:

File downloaded succesfully
Running BD scanner
It is a directory
It is a directory
It is a directory
Exiting

我想改进这段代码,以便它遍历所有目录并获取所有文件。请帮助我提出任何建议。


您可以使用shopt -s globstar在 Bash 4.0+ 中:

#!/bin/bash

shopt -s globstar nullglob
cd _your_base_dir
for file in **/*; do
  # will loop for all the regular files across the entire tree
  # files with white spaces or other special characters are gracefully handled
  python bd_scanner_new.py "$file"
done

Bash 手册提到了这一点globstar:

如果设置,文件名扩展上下文中使用的模式“**”将 匹配所有文件以及零个或多个目录和子目录。如果 该模式后跟“/”,仅目录和子目录 匹配。

More globstar这里的讨论:https://unix.stackexchange.com/questions/117826/bash-globstar-matching

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何递归遍历目录树并仅查找文件? 的相关文章

随机推荐

  • 从 df 中的另一行减去一行

    我有 DF 看起来像 DF Nrow a b c d 1 0 1 0 2 0 3 0 4 2 2 3 4 5 3 7 8 9 10 我想从第 2 行和第 3 行中减去第 1 行 我该怎么做 感谢您的任何提示 Updates 我看到了这段代码
  • R 计算数据帧每一行中的字符串变量

    我有一个看起来像这样的数据框 其中每一行代表一个样本 并且重复相同的字符串 gt df V1 V2 V3 V4 V5 1 a a d d b 2 c a b d a 3 d b a a b 4 d d a b c 5 c a d c c 我
  • 如何使用 Melt() 将 pandas DataFrame 重塑为列表,从交叉表列创建索引并在其位置创建新变量?

    我有一个数据矩阵 29523 行 x 503 列 其中 3 列是索引 例如下面是一个子集 IDX1 IDX2 IDX3 1983 Q4 X Y Z 1984 Q1 X Y Z A A1 Q 10 A F NaN 110 A F NaN A
  • 使用共享首选项在主屏幕上颤动多个条件

    我有一个登录屏幕 用户登录后 他会转到工作屏幕 如果用户登录并离开应用程序并返回 我将其设置为主屏幕 使用共享首选项作为工作屏幕 但现在我有另一个屏幕女巫是停止工作屏幕 我所做的是用户转到此工作屏幕并开始工作 当他在工作屏幕上按下开始工作时
  • Pandas 可以将 Excel 组结构读取为 Multiindex 吗?

    我有一个 Excel 文件 其中有一些 大部分 很好地分组的行 我在下面构建了一个假示例 有没有办法让 Pandas 中的 read excel 生成保留此结构的多重索引 对于此示例 多重索引将有四个级别 家庭 个人 儿童 可选 投资 如果
  • 如何使用自定义 UIImage 作为 UITabBarItem Badge?

    如何添加自定义 UIImage 作为 UITabBarItem 的徽章 即 当设置 UITabbarItem 的徽章值时 它将显示 考虑子类化 UITabBarItem 并自己绘制它
  • C++ 循环未正确循环

    我有一个 20 x 20 的数组 它输出盘子的热度 我需要重复一个循环 直到数组中没有单元格的变化超过 0 1 度 我通过每次迭代刷新值 如何监视数组中任何单元格的最大变化以确定何时停止迭代 对现在我已经尝试过 但下面的输出不正确 incl
  • 字节字符串与 unicode 字符串。 Python

    你能详细解释一下Python中字节字符串和Unicode字符串之间的区别吗 我读过了this 字节码只是将源代码转换为字节数组 这是否意味着Python有自己的编码 编码格式 还是使用操作系统设置 我不明白 您能解释一下吗 谢谢你 不 Py
  • 在javascript中检索被点击元素的getAttribute

    我的网页上有很多图片 img src 1 jpg br img src 2 jpg 我正在尝试使用下面的 javascript 获取单击图像的 src var getImageName function document onclick f
  • HTTP 404 - 找不到文件 Internet Explorer V6

    我有 ang 404 代码 如果找不到该页面 它将重定向到该网站 它在火狐浏览器中运行正常 但是 当我使用 Internet Explorer v6 该网站将收到错误消息 HTTP 404 文件未找到 Internet Explore 我怎
  • Microsoft Office Access 数据库引擎无法打开或写入该文件

    我收到以下异常 Microsoft Office Access 数据库引擎无法打开或写入 文件 它已被其他用户独占打开 或者您 需要查看和写入其数据的权限 at Econ Open public partial class LBMIS1Ne
  • android 已建立的连接被主机中的软件中止

    2014 03 30 19 55 57 ddmlib An established connection was aborted by the software in your host machine java io IOExceptio
  • 如何通过为所有具有相同日期的文件创建一个存档来存档超过 7 天的文件?

    我正在寻找可以帮助我制定计划任务以自动将日志文件移动到 RAR 存档中的人 它不一定是批处理文件解决方案 如果您有其他想法请分享 我得到了它的基本代码 这是我到目前为止的批处理文件代码 C Program Files WinRAR rar
  • 如何通过我的代码访问 iPhone 的设置?

    我想要做的就是能够判断我的应用程序的用户是否使用 24 小时制 我意识到我无法设置这些设置 我只想读取它们 如果您不知道我在说什么 我希望能够读取用户在 iPhone 内置 设置 应用程序中设置的值 以灰色齿轮为图标的那个 我尝试用谷歌搜索
  • 每页的 Mat 分页器项目在 Angular 9 中不起作用

    我正在从可观察对象渲染表数据 然后将数据源分配给分页器 下一页箭头以及首页和最后一页按钮都可以使用 当我尝试更改每页的项目时 它不起作用 我尝试了 ngAfterViewInit 和页面事件调用 但它们没有任何区别 import Compo
  • 受保护的静态方法可见性

    考虑这种情况 请注意 为了简洁起见 类型和方法体已被省略 当我需要这样做时 这可以让我连接到数据 public abstract class DatabaseAccessor protected static object GetDataF
  • Perl 代码分析工具

    我需要测试 Perl 应用程序 文件操作 数据库操作等 我正在寻找 Perl 代码的配置工具 Linux 中是否有类似 gprof 的 Perl 代码分析工具 有些人可能建议使用 Devel DProf 作为最标准的方法 但如果你仔细观察
  • 仅当用户不在另一个表中时才从一个表中选择用户

    我们有两张表 用户 id name borrower 1 Peter 1 2 John 1 3 Mark 1 4 David 0 贷款 id from to amount 1 1 2 100 我需要输出 Peter 没有借过任何钱并且借款人
  • 运行带有太多空格的程序

    我有一个在命令提示符下运行良好的命令 CMD C C Program Files x86 VideoLAN VLC VLC vvv http www foo com 8085 video mp4 playlist m3u8 wmsAuthS
  • 如何递归遍历目录树并仅查找文件?

    我正在研究一个scp调用以下载远程系统上存在的文件夹 下载的文件夹有子文件夹 在这些子文件夹中有一堆文件 我想将它们作为参数传递给 python 脚本 如下所示 scp r email protected SomeName SomeName