bash - 计算具有唯一名称的嵌套目录的数量
问题描述
我有一堆嵌套目录。我有兴趣计算的目录都有不同的名称,但好在它们都有一个具有特定名称的嵌套目录。因此,可以通过计算具有该唯一名称的所有嵌套目录来计算我感兴趣的目录数量:
前任:
home/dir1/dir2/dir_of_interest_1/fruits
home/directory_of_interest_2/fruits
home/fruits
home/dir3/dir4/dir5/directory_of_interest3/fruits
etc...
我有兴趣找到“dir_of_interest_X”的数量,因此,我想计算“home”中名称为“fruits”的目录数量。我将如何在 bash 中执行此操作?
解决方案
几种方法。
使用bash
的递归通配符:
shopt -s globstar
fruits=( home/**/fruits/ )
numfruits=${#fruits[@]}
如果需要,这还会为您提供所有水果目录的数组。
使用find
andwc
来获取数字:
numfruits=$(find home/ -type d -name fruits -printf "x\n" | wc -l)
如果您不想 count home/fruits
,则可以从总数中减去 1:
numfruits=$((numfruits - 1))
推荐阅读
- javascript - 将 promise 与 resolve & reject 转换为异步函数的正确方法(puppeteer)
- python - PLY 可以处理输入而不将其全部加载到内存中吗?
- python - 氢包原子编辑器——奇怪的显示
- iot - Beaglebone Black:如何以编程方式打开/关闭引脚?
- r - 基于一列合并两个数据框而不重复行并保留更多数据
- php - 子查询或 sum 内的 sum。这是可能的?
- excel - 使用 VBA 宏将文本 (csv) 文件导入 Excel 表
- java - 无法初始化 Mockito
- node.js - React 未定义,我有一个错误连接
- python - Python 不同长度、平均值和标准差的多个列表