当前位置:TranBon博客 > 首页 > 技术 > Centos7计算目录(包括它们所有的子目录)中总体的文件数量和目录数量

Centos7计算目录(包括它们所有的子目录)中总体的文件数量和目录数量

adminis6天前技术6360

Centos7计算包括 /www/wwwroot/EXE 和 /www/wwwroot/H5
①这两个目录(包括它们所有的子目录)中总体的文件数量和目录数量
②本身在内的每个目录(以及它们的子目录)中的文件和目录数量,并且分别显示每个目录(包括顶级目录)的统计结果,
③先文件、目录、路径这样显示排版要整齐,数字要右对齐,中文显示


为了满足您的需求,以下是一个适用于 CentOS 7 的 Bash 脚本。该脚本将计算包括 /www/wwwroot/EXE 和 /www/wwwroot/H5 这两个目录(及其所有子目录)在内的文件和目录数量,并按照您要求的格式显示结果。

#!/bin/bash

# 定义要检查的顶级目录数组
TOP_DIRS=("/www/wwwroot/EXE" "/www/wwwroot/H5")

# 初始化总体计数
TOTAL_FILES=0
TOTAL_DIRS=0

# 定义一个函数来计算并显示指定目录的统计结果
count_files_and_dirs() {
    local dir=$1
    local files=$(find "$dir" -type f | wc -l)
    local dirs=$(find "$dir" -type d | wc -l)
    # 减去当前目录(.),因为它不是一个子目录
    dirs=$((dirs - 1))
    # 使用 printf 格式化输出,确保数字右对齐,路径左对齐
    printf "%10d %10d    %-50s\n" "$files" "$dirs" "$dir")
}

# 遍历每个顶级目录及其子目录
for top_dir in "${TOP_DIRS[@]}"; do
    echo "处理顶级目录: $top_dir"
    echo "    文件数    目录数    路径"
    echo "------------------------------------------------"
    # 显示顶级目录的统计结果
    count_files_and_dirs "$top_dir"
    # 累加顶级目录的文件和目录数量到总体计数
    TOTAL_FILES=$((TOTAL_FILES + $(find "$top_dir" -type f | wc -l)))
    TOTAL_DIRS=$((TOTAL_DIRS + $(find "$top_dir" -type d | wc -l)))
    # 遍历并显示每个子目录的统计结果
    find "$top_dir" -mindepth 1 -type d | while read subdir; do
        count_files_and_dirs "$subdir"
    done
    echo ""  # 添加空行以分隔不同顶级目录的输出
done

# 注意:上面的累加方法会重复计算顶级目录,所以需要减去多算的部分
# 顶级目录的数量只应该计算一次,因此我们从总数中减去每个顶级目录的重复计数
for top_dir in "${TOP_DIRS[@]}"; do
    TOTAL_DIRS=$((TOTAL_DIRS - 1))
done

# 显示总体的统计结果
echo "总体统计结果:"
echo "    文件数    目录数"
echo "---------------------"
printf "%10d %10d\n" "$TOTAL_FILES" "$TOTAL_DIRS"


将上述脚本保存为一个 .sh 文件(例如 count_files_dirs.sh),然后给予执行权限并运行:

chmod +x count_files_dirs.sh
./count_files_dirs.sh

脚本说明:

  • 定义了 TOP_DIRS 数组来存储要检查的顶级目录路径。

  • 使用 count_files_and_dirs 函数来计算并显示每个目录(包括子目录)的文件和目录数量,同时确保输出格式正确。

  • 在 for 循环中遍历每个顶级目录,调用 count_files_and_dirs 函数显示统计结果,并累加文件和目录数量到总体计数中。

  • 注意,在计算子目录数量时,我们减去了顶级目录本身,因为顶级目录会在总体计数中单独计算。

  • 最后显示总体的文件和目录数量。

这个脚本会按照您要求的格式输出每个目录(包括顶级目录和子目录)的统计结果,数字右对齐,路径左对齐,并且先显示文件数,再显示目录数,最后是路径。







第8条随机版权
文章免责声明
尊敬的读者:

本文所提供的信息、观点及数据均来源于公开资料、相关研究报告及个人理解,仅供读者参考。本文不代表任何官方立场或专业机构的意见,亦不构成任何投资建议或决策依据。

在撰写本文时,我们已尽力确保信息的准确性和完整性,但鉴于信息来源的多样性及可能存在的误差,我们无法保证本文所述内容在任何时刻都绝对准确无误。因此,读者在阅读本文时,应结合自身实际情况及专业知识,进行独立分析和判断。

对于因本文信息不准确、不完整或读者自身理解偏差而导致的任何损失或损害,我们概不负责。同时,我们也不承担因本文所述内容引发的任何法律责任或纠纷。

此外,本文可能包含对特定公司、行业或市场的分析和预测,这些分析和预测均基于当前市场环境及可获得的信息,并可能受到多种因素的影响而发生变化。因此,读者在参考本文时,应充分考虑这些潜在的风险和不确定性。

我们鼓励读者在阅读本文后,进一步查阅相关资料和咨询专业人士,以获取更全面、准确的信息和建议。同时,我们也欢迎读者就本文内容提出宝贵的意见和建议,以便我们不断改进和提升文章质量。

最后,感谢读者对本文的关注和阅读。我们希望通过提供有价值的信息和观点,为读者在相关领域的学习和决策提供一定的帮助和参考。但请务必记住,本文所述内容仅供参考,不构成任何具体建议或承诺。

特此声明。

扫描二维码推送至手机访问。

版权声明:本文由TranBon博客发布,如需转载请注明出处。

本文链接:https://bk.tranbon.com/?id=339

“Centos7计算目录(包括它们所有的子目录)中总体的文件数量和目录数量” 的相关文章

centos固定网卡、网卡名会变、网卡名错乱,解决方法

centos固定网卡、网卡名会变、网卡名错乱,解决方法

cd /etc/udev/rules.d/ vi /etc/udev/rules.d/70-persistent-net.rules echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\&...

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos手动安装mysql没有my.cnf配置文件时,1.可以从其它服务器把my.cnf文件拷贝到需要的服务器上,2.可以touch创建my.cnf文件这边是直接使用touch命令my.cnf文件的,创建在/etc/目录下[root@host ~]#  touch&...

iis7 asp网站 500 - 内部服务器错误。

iis7 asp网站 500 - 内部服务器错误。

其它配置正常的情况下解决方法: 处理完成了!...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。