How to calculate the total size of certain files only, recursive, in linux

后端 未结 3 1876
攒了一身酷
攒了一身酷 2020-12-29 12:27

I\'ve got a bunch of files scattered across folders in a layout, e.g.:

dir1/somefile.gif
dir1/another.mp4
dir2/video/filename.mp4
dir2/some.file
dir2/blahbla         


        
相关标签:
3条回答
  • 2020-12-29 12:45

    You can simply do :

    find -name "*.mp4" -exec du -b {} \; | awk 'BEGIN{total=0}{total=total+$1}END{print total}'
    

    The -exec option of find command executes a simple command with {} as the file found by find. du -b displays the size of the file in bytes. The awk command initializes a variable at 0 and get the size of each file to display the total at the end of the command.

    0 讨论(0)
  • 2020-12-29 12:49

    This will sum all mp4 files size in bytes:

    find ./ -name "*.mp4" -printf "%s\n" | paste -sd+ | bc
    
    0 讨论(0)
  • 2020-12-29 12:59

    For individual file size:

    find . -name "*.mp4" -print0 | du -sh --files0-from=- 
    

    For total disk space in GB:

    find . -name "*.mp4" -print0 | du -sb --files0-from=-  | awk '{ total += $1} END { print total/1024/1024/1024 }'
    
    0 讨论(0)
提交回复
热议问题