Linux文件查找工具之find “大宝剑”--转载
原文地址:http://xinzong.blog.51cto.com/10018904/1749465
一、文件查找工具常用软件
locate:
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
find:
find命令用来在指定目录下查找文件,通过遍历指定的目标目录,实时查找符合指定属性的文件。可以结合正则表达式(REGular EXPressio)来匹配模式。
二、软件常用参数及使用方式
locate:
使用格式:locate [OPTION]... PATTERN...
常用参数:
-i:忽略大小写
实例:
过滤/etc/下以sh开头的文件
1
2
3
4
|
# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
|
find:
find [OPTIONS] [查找路径] [查找条件] [处理动作]
查找路径:默认为当前路径;
查找条件:默认为指定路径下的所有文件;
处理动作:默认为打印至屏幕;
1、查找路径
默认为当前路径,可以指定系统内的任意路径,但不建议使用/
2、查找条件
(1)基本查找条件
a、用户、用户组及文件名查找
-name "文件名":文件名支持使用globbing
glob:文件名通配;快速引用多个文件;文件名整体匹配度检测;
元字符:基于元字符可编写匹配模式(pattern);
*:匹配任意长度的任意字符;
?:匹配任意单个字符;
[ ]:匹配指定集合内的任意单个字符;
[a-z], [A-Z]:不区分字符大小写;
[0-9]
[a-z0-9]
[[:upper:]]:所有大写字母;
[[:lower:]]:所有小写字母;
[[:digit:]]:所有的数字;
[[:alpha:]]:所有字母;
[[:alnum:]]:所有字母和数字;
[[:space:]]:空白字符;
[[:punct:]]:标点符号;
[^ ]:匹配指定集合外的任意单个字符;
实例:
1
|
# find /etc -name "passwd*"
|
-iname "文件名" 不区分大小写
实例:
1
2
3
4
5
|
# find /tmp -iname "*yum*"
/tmp/yum .log
/tmp/YUM .LOG
# find /tmp -name "*yum*"
/tmp/yum .log
|
-user USERNAME:根据属主查找
-group USERNAME:根据属组查找
实例:
1
|
# find /var -user root -o -group mail
|
-uid UID:根据指定UID查找
-gid GID:根据指定GID查找
实例:
1
2
3
|
# find /tmp -uid 3323 -ls
2346806 0 -rw-rw-r-- 1 mageedu mageedu 0 Mar 10 09:36 /tmp/mageedu
2346812 0 -rw-rw-r-- 1 mageedu mageedu 0 Mar 10 09:36 /tmp/testfile
|
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件需
-nouser与-nogroup参数主要用在当公司员工离职后,虽然账户删除,但是他所有权限的文件还存在,并且以UID的形式来标识属主与属组,既当有uid有这个用户相同时就会可以查看此文件,所以需要删除此类文件。
实例:
1
2
3
|
# find /tmp -nouser -nogroup -ls
2346806 0 -rw-rw-r-- 1 3323 3323 0 Mar 10 09:36 /tmp/mageedu
2346812 0 -rw-rw-r-- 1 3323 3323 0 Mar 10 09:36 /tmp/testfile
|
b、文件类型查找
-type TYPE: 根据文件类型查找
f: 普通文件
d: 目录文件
l: 符号链接文件
b: 块设备
c: 字符设备文件
p: 命令名管道文件
s: 套接字文
实例:
1
|
# find /tmp -type d -ls
|
c、文件大小
-size [+|-]#UNIT:
常用单位有:k, M, G
#UNIT: #-1 < x <= #
2k指1k-2k
-#UNIT:x <= #-1
-2k:指0k-1k
+#UNIT: x > #
+2k:指2k到正无穷
实例:
1
|
# find /etc/ -type f -size +1
|
d、时间戳查找
以“天”为单位
-atime [+|-]#
-mtime [+|-]#
-ctime [+|-]#
#: 例如:今天为3月10日,3就是3月7日到3月8日(注意天是24小时制)
-#: 例如:今天为3月10日,-3就是三天内指,3月7日的现在时间到现在的时间。
+#: 例如:今天为3月10日,+3就是三天前之前指,3月7日前
以“分钟”为单位
-amin [+|-]#
-mmin
-cmin
实例:
1
2
|
# find /etc -not -user root -not -user hadoop -mtime -7
# find / -nouser -nogroup -atime -3
|
e、权限查找
根据权限查找:
-perm [+|-]MODE
MODE: 与MODE精确匹配
+MODE:任何一类用户的权限只要能包含对其指定的任何一位权限即可;
-MODE:每一类用户的权限都包含对其指定的所有权限;
#这里是指包含,例如:-444 指在属主、属组、其他用户中只要包含读权限就可以。
实例:
1
2
|
# find /etc/init.d/ -perm -113 #此处指所有用户都有执行权限,其他用户有写权限的文件或目录
# find /etc/ -type f -not -perm +222 #此处指所有用户都没有写权限
|
(2)组合查找条件
组合查找条件:
与:-a, 查找条件1 -a 查找条件2 -a ...
所有条件必须同时满足
或:-o, 查找条件1 -o 查找条件2 -o ...
满足其中一个条件即可
非:-not, !
-not 查找条件
实例:
1
2
|
# find / \( -nouser -o -nogroup \) -a -atime -3
# find /etc/ -not \( -user root -o -user hadoop \) -a -mtime -7
|
3、处理动作
-print: 默认动作,打印至屏幕;
-ls: 显示找到的文件的详细属性;
-exec COMMAND {} \;
-ok COMMAND {} \;
#exec与ok的区别:ok会提供交互式,让你确认。而exec则不需要;
实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# find /tmp -iname "*yum*" -type f -ls
134 0 -rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/yum .log
137 0 -rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/YUM .LOG
# find /tmp -iname "*yum*" -type f -exec ls -l {} \;
-rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/yum .log
-rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/YUM .LOG
# find /tmp -iname "*yum*" -type f -exec echo {} >>/tmp/test.file \;
# find /tmp -iname "*yum*" -type f -ok echo {} >>/tmp/test.file \;
< echo ... /tmp/yum .log > ? y
< echo ... /tmp/YUM .LOG > ? y
|
转载于:https://www.cnblogs.com/davidwang456/p/5288597.html
Linux文件查找工具之find “大宝剑”--转载相关推荐
- Linux文件查找工具之find “大宝剑”
一.文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这 ...
- Linux文件查找工具的探索
经过 Linux 系统不断探索,不断发展到现代文明,我们都必须坚信:一个典型的 Linux 系统是包含很多文件的,即是由文件组成的!那么新的问题就会涌现到我们的脑海中--"我们如何查找呢?& ...
- linux文件查找工具,分享|Linux 中一种友好的 find 替代工具
fd 命令提供了一种简单直白的搜索 Linux 文件系统的方式. fd 是一个超快的,基于 Rust 的 Unix/Linux find 命令的替代品.它不提供所有 find 的强大功能.但是,它确实 ...
- linux 查找文件 locate,linux文件查找(find,locate)
文件查找: locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的: # updatedb, 手动生成文件数据库 速度快 find: 实时 精确 支持众多查找标准 遍历指定目录中的所有文件 ...
- Linux文件查找之find秘笈
前言 Linux的基本特点之一是一切皆文件,在系统管理过程中难免会需要查找特定类型的文件,那么问题 来了:如何进行有效且准确的查找呢?本文将对Linux系统中的文件查找工具及用法进行详细讲解. 常用工 ...
- linux的locate工具,linux文本查找工具之locate、find
linux文本查找工具之locate.find 一.文件查找分为两类: 1.非实时查找:locate 2.实时查找:find 二.非实时查找:locate 非实时查找:查找速度快.非精准查找.模糊查找 ...
- linux进入文件全文搜索命令,Linux 文件查找命令详解
大家好,我是"孤云幕雨":祝大家中秋快乐,今天给大家带来的是<Linux文件查找命令> 一.locate:依赖于事先构建的索引 v依赖于事先构建的索引:索引的构建是在系 ...
- 9款最佳的Linux文件比较工具
程序员和撰稿人在编写程序文件或平常的文本文件时,有时想知道两个文件或同一文件的两个版本之间的差异.你在Linux上比较两个计算机文件时,文件内容之间的差异就叫diff.这一描述来源于提到diff的输出 ...
- Linux文件查找命令find,xargs详述
Linux文件查找命令find,xargs详述 总结:zhy2111314 来自:LinuxSir.Org 整理:北南南北 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量 ...
最新文章
- 列举当前用户或指定用户的所有表,所有字段,以及所有约束
- python2转python3代码_python2代码批量转为python3代码
- spring的基本知识
- ubuntu 12.04 eclipse 安装
- Encapsulate Downcast(封装向下转型)
- android网络盒子改,有什么办法可以把淘汰下来的安卓手机改造成电视盒子用?...
- java记住用户名和密码_JAVA--高级基础开发Cookie实现记住用户名和密码
- python-json下载以及分析-案例
- HDU 1234- 开门人和关门人
- python中fabs函数_Python fabs() 函数 - Python 教程 - 自强学堂
- Java 某天的开始时间与结束时间
- flash游戏教程集锦~~
- php 时间转时辰,女子十二时辰,最佳养颜作息时间表!(女人必看!)
- 智能投影机android系统,智能投影机
- sai椭圆尺子等比例放大或者缩小
- NAS如何外网访问?手把手教你申请公网IP(收藏)
- 教程篇(7.0) 12. FortiGate安全 SSL安全隧道 ❀ Fortinet 网络安全专家 NSE 4
- 光纤布线对企业基础设施网络的五大影响
- 怎么才能快速学好UI设计 相关学习路线是什么
- css实现网页轮播图设置
热门文章
- java remove removeat_2016.3.12 Java中ArrayList类详解(转)
- php教程数据库操作,PHP实现对文本数据库的常用操作方法实例演示_PHP教程
- cmpp3.0协议 java,JAVA CMPP3.0协议实现
- css图片过大,CSS解决图片过大撑破DIV的方法
- django oracle clob,记一次clob字段损坏导致的01555错误
- 成考高起专计算机统考试题,成考考试题型
- 银行家算法的分析与实现
- linux体验服务器,体验Ubuntu做服务器
- win10 配置 maven_home 一会儿成功一会儿失败_在macbook上运行移动硬盘里的win10和macos...
- bio linux 创建_不断升级,Java之BIO、NIO、AIO的演变