打印文件类型信息
[root@MIO-2 ~]# file 1.sh 1.sh: Bourne-Again shell script text executable
但是1.sh是我们不需要的,所以只需打印出类型即可
[root@MIO-2 ~]# file -b 1.sh Bourne-Again shell script text executable
然后我们需要遍历文件
path=$1 while read line; do echo $line; done < <(find $path -type f)
当我们转入一个目录时,就可以遍历这个目录下的所有文件
第一个<用于输入重定向,第二个<用于将子进程的输出装换成文件名
最后我们需要建立一个数组,统计每种文件类型出现的次数
#!/bin/bash path=$1 declare -A arr while read line; do file_type=`file -b "$line" | cut -d ' ' -f1`; let arr["$file_type"]++; done < <(find $path -type f) for one in "${!arr[@]}" do echo $one : ${arr["$one"]} done
然后我们统计/下面的文件
[root@MIO-2 ~]# ./count_filetype.sh / Java : 1 UTF-8 : 354 timezone : 1745 magic : 3 Compiled : 112 Plan : 1 raw : 2 C : 1 TeX : 1 LaTeX : 10 GNU : 3335 Perl5 : 635 ...