find 是 linux 下最有用的命令之一,熟练的使用它对于提高工作效率很有帮助。下面介绍它的一些用法
1. 最基本的 用法是:
find dir
这时,它将列出目录 dir下所有的文件和目录。
它相当于 find dir -print
如果使用 print0, 那么,每个匹配的文件名字之间用一个 ‘\0’ 分割(默认用的是换行符)。如果文件名包含空格的话,可以使用 print0
2. 按名字搜索使用 -name 选项。如果要使用两个搜索标准来搜索满足其中之一的文件,可以使用 -o (or)。
ls
a file dir1 dir2 dir3 file file1 file2 picture1 picture2 picture3
charles@taotao:~/test$ find 。 \( -name “*dir*” -o -name “*file*” \) -print
。/file2
。/a file
。/file1
。/dir3
。/dir1
。/file
。/dir2
-path选项则会把匹配的文件名或者路径名搜出来。
3. -regex 使用正则匹配。
ls
1.txt a file b.mp3 dir1 dir3 file1 picture1 picture3
2.txt a.mp3 c.avi dir2 file file2 picture2
charles@taotao:~/test$ find 。 -regex “.*\(\.mp3\|\.avi\)$”
。/a.mp3
。/b.mp3
。/c.avi
4. 找出不符合搜索条件的文件,可以使用 !:
$ find 。 ! -name “*.txt”
。
。/file2
。/a file
。/picture3
。/file1
。/picture2
。/dir3
。/a.mp3
。/dir1
。/picture1
。/file
。/b.mp3
。/dir2
。/c.avi
5. 路径搜索深度。
默认下,find 会递归搜查制定路径下所有子目录。可以使用 -maxdepth 和 -mindepth指定最多要搜查到指定目录下的几级目录,从指定目录的几级目录开始搜索。
如果要仅仅搜索当前目录下的文件,使用 find 。 -maxdepth 1 ;如果要搜索除当前目录下的所有文件,使用 find 。 -mindepth 2
6. 根据文件类型搜索
用 -type 指定。 常用的有 -type f (搜索文件), -type d(目录), -type l (符号链接)
7. 根据文件时间。 -atime (上一次的访问时间), -mtime (文件内容的修改时间), -ctime(文件属性的修改时间)。时间单位是天。数字前 +表示大于,-表示小于。
find 。 -type f -atime -7 -print
搜索最近7天内被访问的文件
另外还有分钟为单位的选项: -amin, -mmin, -cmin.用法类似。
8. 根据文件大小搜索。使用 -size选项。后面的数字同样可使用 +/-号。 数字后面跟后缀表示单位: b: 512 字节的 block; c: 字节; w: 2 字节; k: 1024 字节; m: 兆字节; g: 1024 兆
/media/data/video$ find 。 -type f -size +2g
。/home alone 1990 720p bluray dts x264-mgb/home alone 1990 720p bluray dts x264-mgb.mkv
。/my.sassy.girl.2001.720p.blu-ray.x264.dts-hdchina [publichd]/my.sassy.girl.2001.720p.blu-ray.x264.dts-hdchina.mkv
。/the godfather part i.mkv
。/the godfather part 2 (1974) [1080p]/the.godfather.part.2.1974.1080p.brrip.x264.bokutox.yify.mp4
找出所有大于2g的文件。
9. 删除匹配的文件: 用 -delete
还可以用:
:/usr/local/bin$ find 。 -name “*qemu*” -exec rm {} \;
rm: remove write-protected regular file `。/qemu-io‘?
10.根据文件的属性(读写,执行权限)和所有者搜索。 使用 -perm 和 -user
11. 在 find 中执行其他的命令。 使用 -exec
比如,把上面的owner为 root的改为 charles,:
{}是一个 place holder,它会被替换成搜索到的每个文件。
12. 忽略某些目录。 使用 -prune
find 。 -name “dir1” -prune -o -type f -print
列出当前目录下除 dir1目录以外的所有文件。
13. 拷贝搜索到的文件到另外一个目录。
find 。 -type f -name “*.ko” -exec cp {} ~/tmp/ \;
或者:
find 。 -type f -name “*.ko” | xargs -i {} cp {} ~/tmp
紫光旗下新华三集团正式宣布,全面进入运营商高端路由器市场
石墨烯产业将陷混战 科技创新成突围之路
小功率电源适配器IC太难选?看完这篇轻松get√
西门子S7系列PLC支持类型的传感器介绍_PLC与传感器的NPN和PNP的接线详解
数明半导推出SiLM27511H高欠压保护阈值的单通道高速低边门极驱动器
详谈Linux的find命令
iPhone8颜值要上天,但其命运却掌握在佳能手里?
中国移动利用远程服务真正实现移动信息化与各行各业的深度融合
开关电源电磁干扰滤波器设计
超级计算机大PK:中国已抢得先机 AMD皓龙处理器排第三
工业互联网已被看做是互联网的下半场
如何选用频敏变阻器?
交叉耦合电流饥饿型VCO设计实现降低时钟频率的相位噪声
植保仪器的应用大大减少了化学农药的残留量
GPRS通信技术在物联网中的应用
服务器不够智能会给企业带来什么影响?
反馈电路分析方法汇总
环保用电监管系统云平台
蓝牙耳机哪些品牌好用,分享一些实用的运动耳机
可直接融入身体内的超薄电子检测层