需求, /data目录下, 有一些文件夹是以 mp4,mkv, wmv,avi等结尾的,内容是对应的视频文件的取样截图,而且全路径可能有空格(大坑一个),要统计每个文件夹的大小,以及记录下全路径
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又会在空格处打断









网友评论