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 |
Linux文件查找工具之find “大宝剑”--转载的更多相关文章
- linux文件查找工具——locate,find
一文件查找介绍 文件的查找就是在文件系统上查找符合条件的文件. 文件查找的方式:locate, find非实时查找也就是基于数据库查找的locate,效率特别高. 实时查找:find 二locate ...
- Linux操作系统的文件查找工具locate和find命令常用参数介绍
Linux操作系统的文件查找工具locate和find命令常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.非实时查找(数据库查找)locate工具 locate命 ...
- 9款最佳的Linux文件比较工具
程序员和撰稿人在编写程序文件或平常的文本文件时,有时想知道两个文件或同一文件的两个版本之间的差异.你在Linux上比较两个计算机文件时,文件内容之间的差异就叫diff.这一描述来源于提到diff的输出 ...
- Linux文件查找.md
Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 w ...
- linux文件查找find命令
linux文件查找find命令 1.文件查找 基本介绍 在文件系统上查找符合条件的文件 linux上常见的文件查找工具:find命令 查找分类 实时查找 精确查找 基本语法 find [option ...
- Duplicate Manager Pro for Mac(重复文件查找工具)破解版安装
1.软件简介 Duplicate Manager Pro 是 macOS 系统上一款重复文件查找工具,可以帮你在 Mac 电脑上查找出磁盘上面的重复文件,然后让你对这些重复文件进行判断并删除,使 ...
- Linux文件查找命令find,xargs详述【转】
转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Li ...
- Linux文件编辑工具——VIM
Linux文件编辑工具--VIM 1.VIM基本概述 1.1 什么是vim vi 和 vim 是 Linux 下的一个文本编辑工具.(可以理解为 windows 的记事本,或 Notepad++ 1. ...
- 【存】008 Linux 文件查找 find
01 一起来认识 find! 在 Linux 系统,find 毫无疑问是最强的文件查找工具.find 一般会与其他命令结合,将查找到的结果作为参数传入到后置命令中,进行删除.统计.复制迁移等操作. 0 ...
随机推荐
- mysql组合索引与字段顺序
很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符. 看下面的例子:假设有一 ...
- 如何关闭Linux里边的selinux ?
原文地址: http://jingyan.baidu.com/article/6d704a131ba67828da51ca73.html 有很多的Linux使用者因为对selinux不熟悉,所以都会将 ...
- Avizo - 高级三维可视化及分析软件
今天从材料科学应用角度介绍Avizo的基本功能. Avizo是一款先进的三维可视化及分析应用,可用来探索从断层扫描.显微镜.核磁共振成像及更多其他技术获得的材料科学数据.从简单的可视化与测量到高级的图 ...
- reader
http://git.oschina.net/jayqqaa12/abase-reader https://github.com/JustWayward/BookReader https://gith ...
- C#创建唯一的订单号, 考虑时间因素
主要是想把日期和其它因素考虑进来. 使用RNGCryptoServiceProvider类创建唯一的最多8位数字符串. private static string GetUniqueKey() { ; ...
- JAVA生产者消费者的实现
春节回了趟老家,又体验了一次流水席,由于桌席多,导致上菜慢,于是在等待间,总结了一下出菜流程的几个特点: 1.有多个灶台,多个灶台都在同时做菜出来. 2.做出来的菜,会有专人用一个托盘端出来,每次端出 ...
- Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法
由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与Unsafe ...
- javascript - 二叉树
都是些简单的东西,所以直接上代码了. /** * Created by huangjacky on 14-10-3. */ function Node(element, left, right) { ...
- Linux之date
近期学习需要根据不同的日期的数据,做同样的操作,如果一遍遍的手动操作,太笨重了,有些愚公的味道.所以就想着在shell下,将时间当做变量,然后重复其他的操作. 这里的需求是得到从某天(例如:2014- ...
- C#记录对象的变化
经常,我们会遇到一个场景,在保存对象到数据库之前,对比内存对象和数据库值的差异. 下面我写了一种实现,为保存定义一个事件,然后自动找出对象之间的差异,请注意,并没有通过反射的方式去获取每个属性及其值. ...