文件查找命
在文件系统上查找符合条件的文件
-
非实时查找:基于索引查找 locate
-
实时查找:find
locate介绍
依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务):手动更新数据库(updatedb)
索引构建过程需要遍历整个根文件系统,极消耗资源,生产中尽量避免手动更新。
语法:
locate KEYWORD
-i:忽略大小写搜索
-n N:只列举前N个匹配项目。
find介绍
实时查找工具,通过遍历指定路径下的文件系统完成文件查找
语法: find [选项]…[查找路径] [查找条件] [处理动作]
- 查找路径:指定具体目标路径,默认为当前目录
- 查找条件:指定查找标准,可以文件名、大小、类型、权限等标准进行,默认为找出路径下的所有文件
- 处理动作:对符合条件的文件做什么操作,默认输出至屏幕
查找条件
根据文件名
-name “文件名称”:支持使用glob
[root@localhost: /root]# find /etc -name "passwd"
/etc/pam.d/passwd
/etc/passwd
-iname “文件名称”不区分字母大小写
根据属主、属组
-user:查找属主为指定用户的文件
-group:查找属组为指定组的文件
[xiangge@localhost: /home/xiangge]$ find /home -user xiangge -ls
523265 4 drwx------ 16 xiangge xiangge 4096 Apr 9 21:51 /home/xiangge
523388 4 -rw------- 1 xiangge xiangge 1112 Apr 9 22:00 /home/xiangge/.bash_history
-uid:查找属组为指定UID号的文件
-gid:查找属组为指定的GID号的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
根据文件类型查找
-type:
- f:普通文件
- d:目录文件
- l:符号链接文件
- s:套接字文件
- b:块设备文件
- c:字符设备文件
- p:管道文件
[xiangge@localhost: /home/xiangge]$ find /tmp -type d -ls
1179649 4 drwxrwxrwt 15 root root 4096 Apr 9 22:50 /tmp
1577727 4 drwxrwxrwt 2 root root 4096 Apr 3 23:00 /tmp/.XIM-unix
1313311 4 drwxrwxrwt 2 root root 4096 Apr 3 23:25 /tmp/.X11-unix
1446044 4 drwxrwxrwt 2 root root 4096 Apr 3 23:00 /tmp/.Test-unix
1577726 4 drwxrwxrwt 2 root root 4096 Apr 3 23:25 /tmp/.ICE-unix
1185729 4 drwx------ 3 root root 4096 Apr 3 23:22 /tmp/systemd-private-fb3197586e804ebe969df0ca549914a1-rtkit-daemon.service-LcZqdW
组合条件
- 与:-a
- 或:-o
- 非:-not,!
事例:找出/tmp目录下,属主不是root,且文件名不是fstab的文件
第一方法:
find /tmp \( -not -user root -a -not -name 'fstab' \) -ls
第二种方法:
find /tmp -not \( -user root -0 -name 'fstab' \) -ls
根据文件大小查找
-size [+][-]#UNIT 常用单位:k,M,G
如:
- 5k: 5k<x<=6k
- -5k: x<5k
- +5: x>6k
[xiangge@localhost: /home/xiangge]$ find /var -size -5k -ls
根据时间戳查找
以天为单位:
- atime[+|-]#
- mtime
- ctime
如:
7:7<=x<8
-7:x<7
+7:x>=8
以分钟为单位
- amin
- mimn
- cmim
处理动作:
- -print 打印到屏幕上
- -ls 打印到屏幕上 类似于ls -l
- -delete 删除操作 只删除文件,不能删除非空目录
- -fls file 查找到的文件信息保存到指定的文本中
- -ok 在执行后面的动作之前会提示你是否需要执行(交互式的)
- -exec CMD {} ; 执行后面的命令 {} 表示前面find出的结果 ; 固定用法
[xiangge@localhost: /home/xiangge]$ touch test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge -cmin -5
/home/xiangge/test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge -cmin -5 -exec mv {} {}.new \;
/home/xiangge/test.txt.new
原创文章,作者:祥健,如若转载,请注明出处:http://www.178linux.com/73098
评论列表(1条)
主要写了linux下查找方件命令的详细用法,内容写的很不错,排版也挺好的,赞!