文件查找详解

查找命令有locate和find

一、locate

根据全系统文件数据库进行查找,并非实时查找。按计划任务会自动将本机的文件收集到文件数据库中,非精确查找。

手动生成文件数据库,updatedb,执行速度慢,查找速度快

二、find

实时、精确、遍历、查找速度慢、支持众多查找类型

find 查找路径 查找标准 查找的处理动作

查找路径:默认为当前路径

查找标准:默认为路径下所有文件

查找的处理动作:默认为显示

匹配标准:

-name ‘filename‘:根据文件名作精确查找并区分大小写,支持文件名通配*,?,[]

         [[email protected] ~]# find /etc -name ‘passwd‘

-iname ‘filename‘:文件名匹配不区分大小写

-regex PATTERN:基于正则表达式进行文件名匹配

-user USERNAME:根据文件的属主进行查找

-group:GROUPNAME:根据文件的属组进行查找

-uid:根据uid查找

-gid:根据gid查找

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

-type TYPE:根据文件类型查找

f:普通文件

d:目录

c:字符

b:块设备

l:连接文件

p:管道

s:套接字

-size:文件大小查找

M

K

G

+-表示范围

组合条件

-a 与

-o    或

-not 非

找出/tmp非普通文件

 [[email protected] ~]# find /tmp -not -type f

找出不是用户1的又不是用户2的文件

1)

 [[email protected] tmp]# find ./ -not -user user1 -a -not -user user2

2)

 [[email protected] tmp]# find ./ -not \( -user user1 -o -user user2 \)

根据文件的时间戳查找文件

-mtime [+|-]#:修改时间天数

-ctime [+|-]#:改变时间天数

-atime [+|-]#:访问时间天数

#:到此刻刚好#天

-#:最近#天

+#:至少有#天

-mmin[+|-]#:修改时间分钟

-cmin[+|-]#:改变时间分钟

-amin [+|-]#:访问时间分钟

根据文件权限查找

-perm mode 权限精确查找

-perm -mode每一位权限必须全部匹配

-perm /mode有任何一位匹配都可以

动作

-print

-ls

-ok command {} \;每一次操作都需要用户确认

-exec command {} \; 其中{}号表示引用匹配到的文件名

 [[email protected] tmp]# find ./ -perm 004 -exec chmod o-r {} \;

文件改名

 [[email protected] tmp]# find ./ -perm 000 -exec mv {} {}.new \;
 [[email protected] tmp]# find /root/ -name "*.sh" -a -perm -111 -exec chmod o-x {} \;

1、查找/var目录下属主为root并且属组为mail的所有文件

    [[email protected] tmp]# find /var/ -user root -group mail -ls

2、查找/var目录下不属于root,bin或student用户的文件

    [[email protected] tmp]# find ./ -not \( -user user1 -o -user root -o -user bin \)

3、查找/etc目录下最近一周修改过并且不属于root及user2用户的文件

    [[email protected] tmp]# find /etc/ -mtime -7 -not \( -user root -o -user user2 \)

4、查找当前系统上没有属主和属组且最近一天内曾被访问过的文件,并将其属主属组修改为root

    [[email protected] tmp]# find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;

5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/largefiles中

    [[email protected] tmp]# find /etc/ -size +1M >>/tmp/largefiles

6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息

    [[email protected] tmp]# find /etc/ -not -perm /222  -ls
     [[email protected] tmp]# find /etc/ -size +1M -exec echo {} >>/tmp/largefiles \;
    [[email protected] tmp]# find /etc/ -size +1M | xargs echo {} >>/tmp/largefiles \;

GB2312

时间: 2024-11-08 09:40:28

文件查找详解的相关文章

Linux文件查找详解

grep,egrep,fgrep:文本查找(文本文件中的内容) 文件查找: locate: 全系统查找的命令, 非实时, 模糊匹配 查找是根据全系统文件数据库进行的 #updatedb,手动生成文件数据库,因为新建的系统可能没有建立文件数据库 速度快  find:         实时查找         精确查找         支持众多查找标准         遍历指定目录中的所有文件完成查找,速度慢  用法:         find 查找路径 查找标准 查找到以后的处理运作       

第七课-第三讲 07_03_Linux文件查找详解

一. let 用法I = 1SUM=$[ $SUM+$I ] = let SUM+=$I = let SUM++-= I-=1 相当于 I--+= I+=1 相当于 I++/=%= 二. 文件查找 grep,egrep,fgrep:文本查找,查找文本的,查找字符串的 locate 命令:全系统查找文件命令,非实时的,模糊匹配查找.他的查找是根据全系统文件数据库进行的.优势是速度快updatedb 手动生成文件数据库(系统我们生成全希望文件数据库时用到手动生成,否则locate命令无法执行) fi

RPM安装包-Spec文件参数详解与示例分析

spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件. 1.Spec文件参数 spec文件包含建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下.这个文件一般分为如下的几节: (1) Preamle(序言) 序言包含用户请求包的信息时所显示的内容.它可以包含包的功能描述.包的软件版本.版权信息和所属的包组等.Summary 是一行关于该软件包的描述,Name 是该软件包的基名,Version 是该软件的版本号,Release 是 RP

Android.mk 文件语法详解

转:http://blog.sina.com.cn/s/blog_602f8770010148ce.html ===================================================================================== 0. Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次

Windows DIB文件操作详解-4.使用DIB Section

前面讲了为了提高DIB的显示性能和效率,我们将DIB转换成DDB,但是这又遇到一个问题,如果我想操作DIB的数据的话,显然是不能使用DDB:一是因为DIB转DDB时发生了颜色转换,再就是DDB无法直接提取指定像素点的数据.那么我们怎么办呢,Windows使用一种折中的方式来达到这一目标(既提高了显示效率和性能,又可以直接操作像素点). 1.DIB Section存储和显示 Windows使用DIB块(DIB Section)来存储DIB数据,其内存结构示意图如下 其实,和我们自己读入DIB数据到

磁盘及文件系统管理详解---急需加强

磁盘管理: 机械式硬盘 U盘.光盘.软盘.硬件.磁带 MBR:Master Boot Record 主引导记录 ln [-s -v] SRC DEST:创建链接文件,默认硬链接 -s:创建软连接 -v:显示过程 硬链接: 1.只能对文件创建,不能应用于目录 2.不能跨文件系统 3.创建硬链接会增加文件被链接的次数 符号链接(软连接): 1.可以应用于目录 2.可以跨文件系统 3.不会增加被链接文件的链接次数 4.其大小为指定的路径所包含的字符个数 du -s -h df:显示整个磁盘分区使用情况

Linux文件权限详解

在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限

C++文件读写详解(ofstream,ifstream,fstream)

c++bufferiosiostreamfilestream 目录(?)[+] 在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结: 这里主要是讨论fstream的内容: [java] view plaincopyprint? #include <fstream> ofstream         //文件写操作 内存写入存储设备 ifstream         //文件读操作,存储设

Windows DIB文件操作详解-1.DIB的读入、保存和显示

DIB(设备无关位图)是存储在磁盘上的位图文件,可以从磁盘读到内存中或从内存保存到磁盘上,它的磁盘文件结构是标准化的,在Linux.Unix及Windows上都可以以同样效果显示.位图是最接近硬件的图像格式,Windows显示的核心是位图,它的SDK API专门提供了一组用于操作DIB文件的函数.但是由于这样或那样的原因,高效合理的使用这些DIB API是需要了解不少历史和使用背景的,在这里我抽茧剥丝介绍和演示DIB的使用,相信对你更好的使用DIB文件有帮助,由于DIB函数比较多,这里分为三部分