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

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

adminis1个月前 (12-15)技术28780

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 函数显示统计结果,并累加文件和目录数量到总体计数中。

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

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

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







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

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

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

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

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

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

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

特此声明。

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

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

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

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

哈哈哈!大神Note3 终于可以把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!

哈哈哈!大神Note3 终于可以把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!

哈哈哈!大神Note3 终于可以把 酷派系统 直接刷成 360 OS 2.0了哈哈哈!大神Note3 终于可以把 酷派系统 “砖头”直接刷成 360 OS 2.0了最新版的刷机软件就可以了,直接把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!下面重点:刷机软件 要是如下图,...

vi编辑器教程

http://blog.sina.com.cn/s/blog_736f1c59010136ry.htmlhttp://blog.csdn.net/lanxinju/article/details/5731843Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配。注意,vi...

centos7破密时提示Authentication token manipulation error

centos7破密时提示Authentication token manipulation error

需要在passwd 前输入chattr -i /etc/passwd chattr -i /etc/shadow如下:...

发表评论

访客

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