需求, /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
又会在空格处打断