Linux 递归查看文件列表及每个大小

羌俊恩 社区创始人
运维领域优质创作者
博客专家认证
2023-12-05 12:15:41

1、查看所有文件列表及大小,执行如下即可:

ls -Rl ./*

2、看当前文件目录各个文件夹大小,执行:

du -h --max-depth=1 .

3、查看当前目录下所有目录及子目录大小

du -h - .  //排除,使用--exclude='*home'

4、脚本查看某目录下每个文件的大小,执行:

#!/bin/bash

function show_file_size() {   #使用function或()定义函数
    # 判断参数是否有效
    if [ -z "$1" ]; then
        echo "请提供文件路径或目录路径"
        return 1
    fi
    
    # 递归查找文件
    files=$(find "$1" -type f)
    
    # 遍历每个文件,并计算文件大小
    for file in $files; do
        size=$(du -ch "$file" | grep total$ | awk '{print $1}')
        echo "文件: $file, 大小: $size"
    done
}

read path

show_file_size $path

或直接调用函数递归查看文件大小,执行:show_file_size "/path/"

5、列出每个文件的大小,使用tree命令,没有的话执行yum install tree进行安装

tree --df -h ./path/*   #显示指定位置的每个文件和目录的大小,并且也会计算总的大,加 -p 选项还能列出文件权限,使用 -c 选项,默认情况下,它最先显示最早修改的文件。另外结合 -D 选项来显示文件修改的时间,-cD就能根据文件修改时间进行排序,默认最先修改的文件在最上方,要将最后修改的文件显示在最上方,需要添加 -r ,即倒序排列;使用-f "$(pwd)"显示每个文件的完整路径

 

...全文
226 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

97,666

社区成员

发帖
与我相关
我的任务
社区描述
欢迎各位小伙伴踊跃加入,将日常运维中遇到的问题贴出来,解决方案分享出来,或自己的博客关于运维的文章分享到这里,来一起营造一个运维的知识库,以提升运维工作更加高效快捷,减少重复造车轮的无限循环。
devops经验分享开源 企业社区 北京·西城区
社区管理员
  • 羌俊恩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区:旨在推进运维云化知识库建设,为更多运维提供参考及经验交流;加入社区的同学,如果运维工作中遇到问题或最后得到解决,有劳凑空发帖,分享共建FAQ社区。

得到解决方案的同学,请积极为发帖的同学点赞、评论、能力范围内打赏激励。另外本社区采用游戏修仙角色作为鼓励,对不同贡献者授予对应“勋章”。

最后祝愿社区繁荣昌盛,此致敬礼!!!

试试用AI创作助手写篇文章吧