一条命令找到需要的全路径带空格的文件夹并统计大小

需求, /data目录下, 有一些文件夹是以 mp4mkv, wmvavi等结尾的,内容是对应的视频文件的取样截图,而且全路径可能有空格(大坑一个),要统计每个文件夹的大小,以及记录下全路径

 find /data -type d -print0 | xargs -0 -n 1 | grep -iE "mp4$|mkv$|wmv$|avi$" | sed  's# #\\ #g' |  xargs du -sh  > ~/videos_d.tsv

几个知识点
1、不用能for循环, 碰到有空格的文件夹会当作两个或更多文件夹处理,不对
2、-print0是为了输出一个null字符(不同于空格), 后面用xargs -0识别这个null, 用-n 1换行
3、 grep正则匹配,这个简单
4、sed是为了给为了把一个[空格]换成 \[空格], 否则后面的du -sh又会在空格处打断

你可能感兴趣的:(一条命令找到需要的全路径带空格的文件夹并统计大小)