首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

bash:递归查找包含最多直接子文件的子目录

bash是一种常用的Unix shell和命令语言,用于在Linux和其他类Unix操作系统上执行命令和脚本。递归查找包含最多直接子文件的子目录是一个具体的任务,可以通过编写bash脚本来实现。

首先,我们需要使用find命令来递归查找所有子目录,并使用wc命令统计每个子目录中的直接子文件数量。然后,我们可以使用sort命令按照子文件数量进行排序,并使用tail命令获取最大的几个子目录。

以下是一个示例的bash脚本:

代码语言:txt
复制
#!/bin/bash

# 递归查找包含最多直接子文件的子目录
# 参数1:要查找的目录
# 参数2:要获取的子目录数量

# 检查参数数量
if [ $# -ne 2 ]; then
  echo "Usage: $0 <directory> <count>"
  exit 1
fi

# 检查目录是否存在
if [ ! -d "$1" ]; then
  echo "Directory '$1' does not exist."
  exit 1
fi

# 使用find命令递归查找子目录,并使用wc命令统计直接子文件数量
# 使用awk命令格式化输出为"子文件数量 目录路径"的格式
# 使用sort命令按照子文件数量进行排序
# 使用tail命令获取最大的几个子目录
find "$1" -type d -exec sh -c 'echo "$(find "$0" -maxdepth 1 -type f | wc -l) $0"' {} \; | sort -rn | head -n "$2"

使用方法:

代码语言:txt
复制
bash script.sh <directory> <count>

其中,<directory>是要查找的目录路径,<count>是要获取的子目录数量。

这个脚本会输出包含最多直接子文件的子目录的路径和子文件数量,按照子文件数量从大到小排序。

请注意,以上脚本只是一个示例,具体的实现可以根据实际需求进行调整和优化。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云主页:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯会议:https://cloud.tencent.com/product/tc-meeting
  • 腾讯云直播(CSS):https://cloud.tencent.com/product/css
  • 腾讯云音视频(VAS):https://cloud.tencent.com/product/vas
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux操作系统下 chkconfig 命令详解

以非递归方式查找具有特定字符串所有文件 第一个命令示例将在/etc/目录下所有文件中搜索字符串artful,同时排除任何子目录: grep -s artful /etc/* /etc/lsb-release...输出显示文件名以及打印包含请求字符串实际行。 递归查找具有特定字符串所有文件 以上命令省略了所有的子目录递归搜索意味着遍历所有的子目录。...以下命令将在/etc/目录内所有文件(包括所有子目录)中搜索字符串artful: grep -R artful /etc/* 搜索包含特定单词所有文件 上面的grep命令示例列出了包含字符串artful...下一个示例将只递归地显示包含/etc/目录下字符串artful所有文件名: grep -Rl artful /etc/* 执行不区分大小写搜索 所有搜索默认情况下都区分大小写,这意味着任何搜索字符串搜索都将只显示包含确切大写和小写匹配文件...下一个例子将在/etc目录下找到包含字符串bash扩展名为.conf所有文件: grep -Ril bash /etc/*.conf 或者 grep -Ril --include=\*.conf bash

1.2K00

Linux下常用shell脚本整理

输出列顺序和数目不受选项顺序和数目的影响。总是按下述顺序显示并且每项最多一列。 行数、字数、字节数、文件名 如果命令行中没有文件名,则输出中不出现文件名。...并发送短信和邮件报告~   -t1 表示只请求一次   -T2 表示2秒超时 26、linux查找文件一些方法   1) 按文件查找   #在/opt目录及其子目录查找包含文件名是以zhjedu...开头文件   find /opt -name "zhjedu*"   2) 按时间查找   #在/opt目录及其子目录查找最近1个小时修改文件   find /opt -mtime -1   #在.../opt目录及其子目录查找1个小时以前修改文件   find /opt -mtime +1   3) 按类型查找   #在/opt目录及其子目录查找目录及其子目录   find /opt -type...d   #在/opt目录及其子目录查找所有的普通文件   find /opt -type f   4) 按大小查找   #在/opt目录及其子目录查找文件大于10M文件   find /opt

4K40

Linux服务器运维常用操作命令有哪些?

fas 打印出abc.log文件中存在fas字符行 ps -ef|grep tomcat 查找包含tomcat字符服务信息 grep -iv [指定字串][文件] 在文件中搜索字串匹配行并输出,-...搜索出关键字用颜色显示 grep -v ^# /etc/inittab 去掉以#开始行(注释行,^表示行首) grep -rn "8088" * 查看当前目录,及子目录包含8088字符文件号,...-r递归查找,-n显示行号 grep 192.168.11.1 show.txt 查找show.txt文件包含192.168.11.1字符行 ....文件所有者可读可写可运行,用户组可读可运行,其他用户可读 chmod -R 777 /tmp/a 将/tmp/a目录及以下目录权限赋予777    -R:递归修改,不加该参数只是修改了a目录权限,a目录下子目录权限不变...init(只有文件名为init文件才会被搜索出来) find /etc -name *init* 在目录/etc中查找文件包含init文件,*代表多个字符 find /etc -name init

5.1K61

「Linux学习」之find用法

find 目录 条件1 -a | -o 条件2 --- >> 递归查找包含所有子目录 常用条件: -type 类型(f,d,l) f: 文件, d 目录, l 快捷方式 -name "文档名称" -size...+ | -文件名称(K,M,G) -user 用户名 查找/boot下所有的目录 find /boot -type d 查找/etc下所有的快捷方式: find /etc -type l 查找/boot...下所有的文件: find /boot -type f find 目录 -name 查找/etc 下面的passwd find /etc -name "passwd" 查找/usr/local 下java...,不涉及子目录,所以少, etc操作不需要加引号 查找在/usr/local下,所有以jdk开头: find /usr/local -name "jdk*" touch /root/abc01.txt...touch /root/abc02.txt mkdir /root/abc 查找/root下所有abc开头 find /root -name "abc*" 查找/root下所有以abc开头文件:

36110

Shell 编程(三):Shell 编程中常用工具

Find 命令 Find 命令用来在指定目录下查找文件。任何位于参数之前字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录文件。...并且将查找子目录文件全部进行显示。...-n +n 按文件大小查找 -mindepth n 从n级子目录开始搜索 -maxdepth n 最多搜索到n级子目录 操作 操作 含义 -print 打印输出(默认) -exec 对搜索到文件执行特定操作...| |-S |  只在设置目录下查找原始代码文件。| |-u |  查找包含指定类型文件。.../bash.1.gz # 只查找二进制文件 [root@localhost /]# whereis -b bash bash: /usr/bin/bash # 只查找说明文件 [root@localhost

45010

linux运维中命令梳理(一)

-print 三者等效, 查找当前目录下所有的文件和目录(递归子目录),以每行一个文件或者目录形式列举出,不包含隐藏文件 find lib opt bin 同上,查找指定多个目录(lib/opt/bin...-type d 查找当前目录下(递归子目录)所有目录 find . -type f 查找当前目录下(递归子目录)所有文件 find ....-size +100k 查找当前目录下(递归子目录)所有文件大小大于100k文件 find . -size 0 查找当前目录下(递归子目录)所有文件大小为0文件 2....-empty 查找当前目录下(递归子目录)所有文件大小为0文件和空文件夹 find . -empty -type f 查找当前目录下(递归子目录)所有文件大小为0文件 find ....-mindepth 1 -name "*.txt" 查找当前目录下子目录中(递归子目录)所有名为*.txt文件,不包含当前目录 find .

7.3K113

Ansible 自动化运维笔记(总结)

不设置任何参数,则find命令将在当前目录下查找子目录文件,并且将查找子目录文件全部进行显示,下面的find 模块也可以帮助我们在被管理主机中查找符合条件文件,就像 find 命令一样....下面来看它几个常用参数: 命 令 参 数 参 数 解 释 paths 指定在哪个目录中查找文件,可以指定多个路径用逗号隔开 recurse 是否为递归子目录查找文件,参数有两个选项yes/no hidden...根据文件大小来查找,可以使用单位有 t、g、m、k、b get_checksum 当有符合查找条件文件被找到时,会同时返回对应文件sha1校验码 1.查询远程主机中/etc目录下,包含 passwd...字符串文件,隐藏文件会被忽略,不会进行递归查找. ansible all -m find -a 'paths=/etc contains="*passwd*"' 2.查询远程主机中/etc目录以及子目录中.../etc目录中以及其子目录查找大于 1m 文件,不包含隐藏文件,不包含目录或软链接文件文件类型. ansible all -m find -a 'paths=/etc size=1m recurse

1.9K20

Linux | 笔记

相关知识 目录 /:Linux系统根目录,包含Linux系统所有目录和文件。 /etc:有关系统设备与管理配置文件。 /sbin:存放系统启动时所需运行程序。.../bin:该目录中含有常用命令文件,不能包含子目录。 /boot:操作系统启动时核心文件。 /usr/local:存放用户后期安装应用程序文件。 /root:超级用户主目录。...补充 查找所有nologin用户 查找所有nologin用户 grep nologin /etc/passwd 查找所有使用bash用户 查找所有使用bash用户 grep bash /etc/passwd...递归删除目录 注意: 当子目录递归删除后,此目录已经为空的话,也一并删除 rmdir -p targetDir # 等价于 rmdir --parents 比如我A目录下面只有一个.../B 这是只删除B这个子目录,A目录不会被删除,因为下面还有一个C子目录 合并文件 合并 file1, file2 内容 到 file3 cat file1 file2 > file3 修改文件 修改时间

1.3K30

Python 算法基础篇:树和二叉树实现与应用

每个目录是一个树节点,可以包含子目录文件作为其节点。...这样结构在程序中可以使用树来表示。 3. 二叉树概念与特点 二叉树是一种特殊树结构,每个节点最多有两个子节点,分别称为左节点和右节点。二叉树子树也是二叉树。...二叉树特点: 每个节点最多有两个子节点,左节点和右节点; 左子树和右子树都是二叉树; 二叉树可以为空,称为空二叉树。 4....表达式树构建可以通过递归地将表达式解析为二叉树形式。...树是一种非线性数据结构,它通过节点和边来表示层次关系,树节点之间不会形成环路。二叉树是树一种特殊形式,每个节点最多有两个子节点,分别是左节点和右节点。

36220

pnpm 会使用硬链接减少磁盘空间,那如何查看某个 package 硬链接到全局目录什么位置?

1. find:根据文件名搜索 find,在某个目录及所有子目录文件进行「递归搜索」,可根据文件属性进行查找。 而文件属性,可通过 stat1 命令进行获得。...-name '*.json' # 在当前目录递归查找包含 hello 文件 $ find ....# 在当前目录递归查找所有以 test 开头文件,并打印完整路径 # realpath: 打印文件完整路径 # {}: 查找文件占位符 $ find ....# 在当前目录递归查找所有以 test 开头文件,并删除 $ find ....作业 如何找到当前目录及所有子目录文件包含 hello 文件 如何找到当前目录及所有子目录文件内容包含 hello 文件 如何列出当前目录(不包含子目录)下所有目录 如果一个连接为硬链接,那如何在全局目录中找到该文件

1K60

《Linux命令行与shell脚本编程大全》第十一章 构建基本脚本

/bin/bash 1.一般情况#用来注释,但是第一行#除外 比如写一个test,内容如下: #!/bin/bash date who 如果想直接运行,需要将路径添加到PATH环境变量中去。...) (3)重定向是在一个进程内执行,管道触发两个子进程执行|两边程序 例子: $cat test2 | grep –n ‘echo’   // 左边输出,右边接受输入,查找包含 grep行 $grep...#2) 将ps输出传给grep,grep将过滤掉ps输出Title部分,-v PID表示不包含PID行。     #3) awk打印输出grep查找结果第一个字段,即pid字段。    ...将查找文件打包并copy到指定目录:     #1) 通过find找到当前目录下(包含所有子目录)所有*.txt文件。    ...bash计算机,叫做bc 1.bc基本用法 bash计算机实际上是一种编程语言,它允许在命令行中输入浮点表达式,然后解释并计算表达式 直接输入bc,进入计算机: ?

1.7K70

Xshell 和Xftp 得安装与使用以及常用得命令

/目录下 cp * /tmp 把当前目录下所有未隐藏文件复制到/tmp/目录下 cp -a docs docs.bak 递归性地把当前目录下docs目录复制为新目录docs.bak,保持文件属性...在文件exports中查找包含bible所有行 tail -100 /var/log/apache/access.log|grep 404 在WEB服务器日志文件access.log后100行中查找包含...|grep page 在当前目录及其子目录查找文件包含page文件 locate traceroute 在系统任何地方查找文件包含traceroute文件 (11)命令vi——编辑文件...与 -9 是不一样。 范例一:找出目前 bash 环境下背景工作,并将该工作删除。...递归删除,可删除子目录文件 -f 强制删除 find 在文件系统中搜索某文件 wc 统计文本中行数、字数、字符数

2K20

Ansible 命令执行模块

,任何位于参数之前字符串都将被视为欲查找目录名,如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录文件,并且将查找子目录文件全部进行显示,下面的find 模块也可以帮助我们在被管理主机中查找符合条件文件...,就像 find 命令一样.下面来看它几个常用参数:命 令 参 数参 数 解 释paths指定在哪个目录中查找文件,可以指定多个路径用逗号隔开recurse是否为递归子目录查找文件,参数有两个选项yes...,查找文件内容中包含 passwd 字符串文件,隐藏文件会被忽略....,包括隐藏文件,但是不包括目录或其他文件类型,不会进行递归查找....1m 文件,不包含隐藏文件,不包含目录或软链接文件文件类型.

1.7K30

Shell常用命令使用说明

语法 chattr [-RV][-v][+/-/=][文件或目录...] 参数 -R 递归处理,将指定目录下所有文件子目录一并处理。 -v 设置文件或目录版本。...grep 指令用于查找内容包含指定范本样式文件,如果发现某文件内容符合所指定范本样式,预设 grep 指令会把含有范本样式那一列显示出来。...任何位于参数之前字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录文件。...并且将查找子目录文件全部进行显示 语法 find path -option [ -print ] [ -exec -ok command ] {} \; 参数 -...-name "*.log" 2、将当前目录及其子目录所有文件列出 find . -type -f 3、将当前目录及其子目录下所有最近 20 天内更新过文件列出 find .

4.6K20

Ansible 常用模块详解

,任何位于参数之前字符串都将被视为欲查找目录名,如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录文件,并且将查找子目录文件全部进行显示,下面的find 模块也可以帮助我们在被管理主机中查找符合条件文件...下面来看它几个常用参数: 命 令 参 数 参 数 解 释 paths 指定在哪个目录中查找文件,可以指定多个路径用逗号隔开 recurse 是否为递归子目录查找文件,参数有两个选项yes/no hidden...字符串文件,隐藏文件会被忽略,不会进行递归查找....,查找文件内容中包含 passwd 字符串文件,隐藏文件会被忽略....,包括隐藏文件,但是不包括目录或其他文件类型,不会进行递归查找.

1.1K10

linux当前时间命令(shell脚本获取当前日期前一天)

-name "*.c" //将目前目录及其子目录下所有延伸档名是 c 文件列出来 find ....//将和ls文件相关文件查找出来 7.3 which 说明:which指令会在环境变量$PATH设置目录里查找符合条件文件。...which bash //查看指令"bash"绝对路径 7.4 sudo 说明:sudo命令以系统管理者身份执行指令,也就是说,经由 sudo 所执行指令就好像是 root...//在一个文件夹中递归查询包含指定字符串文件 7.6 service 说明:service命令用于运行System V init脚本,这些脚本一般位于/etc/init.d文件下,这个命令可以直接运行这个文件夹里面的脚本...//查看所有内存汇总 7.8 top top //显示当前系统中占用资源最多一些进程, shift+m 按照内存大小查看 7.9 df 说明:显示文件系统磁盘使用情况

3.9K30

Linux常用操作命令大全,建议收藏!!!

rm -f 文件名 // 删除当前目录文件(不询问) rm -r 目录名 // 递归删除当前目录下此名目录 rm -rf 目录名 // 递归删除当前目录下此名目录(...usr/tmp/tool /opt // 递归复制目录中所有文件文件夹 3.7 搜索目录(cp) find /bin -name 'a*' // 查找/bin目录下所有以...-ctime -20 // 将目前目录及其子目录下所有最近20 天内更新过文件列出来 find /var/log -type f -mtime +7 -ok rm {} \ // 查找/var...which bash // 查看指令"bash"绝对路径 7.4 sudo 说明:sudo是表示超级用户,sudo命令以系统管理者身份执行指令,需要输入自己账户密码。...) grep -A 3 -i "example" demo_text // 输出成功匹配行,以及该行之后三行 grep -r "ramesh" * // 在一个文件夹中递归查询包含指定字符串文件

1K10
领券