10.5 根据文件类型搜索文件
find -type
find
命令最有用的选项就是-type
,用于指定想要搜索的对象的类型。还记得UNIX系统中所有东西都是文件吧(在1.1节介绍过),所以其实指定的就是要搜索的文件的类型。表10-2列举了find
命令中可以使用的文件类型。
表10-2 根据文件类型搜索文件
文件类型字符 | 含 义 |
---|---|
f | 普通文件 |
d | 目录 |
l | 符号(软)链接 |
b | 块文件 |
c | 字符文件 |
p | FIFO(First In First Out)文件 |
s | 套接字 |
假设要快速查找music盘中Steely Dan的所有专辑,因为所有歌曲文件都是按专辑存放到不同的目录中,所以可以使用-type d
搜索文件夹:
$ cd /media/music/Rock
$ find Steely_Dan/ -type d
Steely_Dan/
Steely_Dan/1980_Gaucho
Steely_Dan/1975_Katy_Lied
Steely_Dan/1974_Pretzel_Logic
Steely_Dan/1976_The_Royal_Scam
Steely_Dan/2000_Two_Against_Nature
Steely_Dan/1972_Can't_Buy_A_Thrill
Steely_Dan/1973_Countdown_To_Ecstasy
Steely_Dan/1977_Aja
这样列出结果挺有用,但因为每个专辑目录的名称都以其发行年份作为开始,这样就可以根据年份进行排序,以便得到更精确的信息,如下所示:
$ cd /media/music/Rock
$ find Steely_Dan/ -type d | sort
Steely_Dan/
Steely_Dan/1972_Can't_Buy_A_Thrill
Steely_Dan/1973_Countdown_To_Ecstasy
Steely_Dan/1974_Pretzel_Logic
Steely_Dan/1975_Katy_Lied
Steely_Dan/1976_The_Royal_Scam
Steely_Dan/1977_Aja
Steely_Dan/1980_Gaucho
Steely_Dan/2000_Two_Against_Nature
使用管道符(|)对find
命令生成的列表进行过滤,效果非常好。随着你越来越能熟练使用find
命令,你会发现用它能够完成的功能也越来越多。