【linux】linux下find指令的用法总结

前言:

先阐述下find指令是干嘛的,为什么要来研究他呢?

find指令是Linux下一个很重要的操作,因为linux是一个“一切皆文件”的操作系统,find(查找文件)指令就尤为重要了,在windows操作系统下,我们查找一个文件可以直接在计算机中搜索文件,但是linux操作系统的文件是不带后缀的,同样,Linux下的find功能相对与windows来说,强大了很多。

Linux下的查找指令有多个,下面我们主要讲下locate和find两个指令

locate指令是对其生成的数据库进行遍历(生成数据库的命令(updatedb)).这一特性决定了用locate查找文件的速度会很快,那么locate速度既然能够快速的查找,那为什么还需要find指令呢?因为locate指令只能对文件进行模糊匹配,精确度不是很高。

#locate的简单操作选项:

-i    //查找文件的时候不区分大小写  比如:locate  -i   tmp

-n   //只显示查找结果的前N行         比如:locate -n  5  t

切入我们的正题:

find指令的用法总结:

  1. 根据文件名或正则表达式匹配搜索

(1),通过文件名查找

操作选项:-name

操作举例:先看下我们的当前目录使用pwd指令,然后在当前目录下mkdir一个文件tmp,然后使用find ./ -name tmp指令就可以找到tmp文件了,使用find ./ -name ‘tmp*‘可以查找所有包含tmp的文件。

(2)通过正则表达式查找

操作选项:!

操作举例:!故名思意,就是否定一个查找条件的,与逻辑-not非类似,

find ./ ! ‘*.c‘ -print查找文件名不为.c的文件,并打印出来

其他正则表达式还有如下一些:

-a  与条件

-o  或条件

-not 非条件(此参数的功能类似于否定参数‘!’)

2.根据文件大小查找

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

b——块(512字节); c——字节; w——字(2字节);

k——千字节 ; M——兆字节; G——吉字节。

操作选项:-size -n

操作举例:find ~ -size -100k查找小于100k的文件

操作选项:-size +n

操作举例:find ~ -size +100k查找小于100k的文件

操作选项:-size  n

操作举例:find ~ -size  100k查找为100k的文件

我的系统下没有等于100k的文件。

3.根据文件深度查找

操作选项:maxdepth

操作举例:find -maxdepth 2 -name tmp在深度为2的目录中查找文件tmp

操作选项:mindepth

操作举例:find -mindepth 1 -maxdepth 3 -name tmp在深度为1至3中查找文件tmp

4.按文件权限查找

操作选项:

-perm  按照文件权限查找

-user (或者是-uid n   n是用户账号的ID) 按照文件所有人查找

-group (或者是-gid n   n是组名的ID)按照文件的所属组查找

操作举例:find -type f -perm 777

find -type f -user 777

find -type f -group 777(这里就不一一截图了,看了上面那么多想必大家都会了)

5.按文件类型查找

文件类型   类型参数    
       普通文件        f
       符号文件        l
       目   录            d
       字符设备        c
       块设备           b
       套接字           s
       管道文件        p

操作选项:-type

操作举例:find .  -type p、find . =type f等等

6.根据文件时间查找

Linux文件系统中的三种时间戳:

▲访问时间(-atime):用户最近一次访问文件的时间;
▲修改时间(-mtime):文件内容最后一次被修改的时间。
▲变化时间(-ctime):文件元数据(metadata,例如权限或所有权)最后一次改变的时间。

操作选项:-atime  、-mtime 、-ctime(用+、-来表示大于和小于)

操作举例:find ./ -atime -1、find ./ -atime  +1、find ./ -mtime -2、find ./ -ctime等等

特殊:find ./ -newer tmp  ---->  查找比test.c还要新的文件

7.find与xargs结合使用

xargs参数  将标准输入转换成命令行参数

操作选项:-atime  、-mtime 、-ctime(用+、-来表示大于和小于)

操作举例:find -type f -name "*.txt" -print0 |xargs -0 rm -f(将找到的文件删除,xargs -0将\0作为                    输入定界符);

find -type f -name "*.c" -print0 |xargs -0 -1(统计所有C程序文件的行数)

时间: 2024-09-28 18:27:02

【linux】linux下find指令的用法总结的相关文章

【Linux】Linux系统下find指令详细用法与示例

Linux中的Find指令是Linux系统中很重要也是很棒的指令之一,功能非常得强大.下面我根据实例代码向大家分享find指令.由于博客上无法贴出Linux代码,我就在截图中体现出代码,以及效果. 我先自己创建了文件名的test.c的普通文件,我们用指令mkdir,以及ls查看已经创建了test.c. 现在我们查找它. 根据文件名或者正则表达式查找:-name   通过文件名字查找 文件名: 1)find ./ -name test.c   查找文件名为test.c的文件 2)find ./ -

在Linux系统下mail命令的用法

在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test [email protected]r.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并且后面的邮箱不会挡这种可能莫名奇妙的信的时候,就能收到这封信了.如果你不想被这种乱七八糟的事情干扰,后面的邮箱请使用本地帐户. 2. 第二个例子: 三种常用格式发信 mail -s test [email protected]r.com #第一种方法,你可以把当前shell当成编辑器来用,编

linux windows下oenvpn客户端的用法

windows下使用openvpn客户端 1.下载openvpn-2.2.0-install.zip客户端安装包 2.解压到你要安装的目录,如D盘的openvpn目录下 3.解压后会有openvpn-2.2.0-install.exe软件.双击,一路向前安装即可 4.在安装目录下的bin目录会有openvpn-gui-1.0.3.exe,双击即可打开vpn客户端.(桌面也会有OpenVPN GUI) 5.把openvpn服务端上的keys目录下,和客户端相关的内容下载下来. 相关的文档有 ca.

<linux下sysctl指令详解>

Sysctl指令是对系统核心参数的设置: 用法: -a 参数列出系统中所有核心设置 当然了这些核心的设置都是文件,存放于/proc/sys/net目录下. 举个有代表性的例子: net.ipv4.icmp_echo_ignore_all = 0      把所有的点改为 / 就可以了.   [[email protected] net]# net.ipv4.icmp_echo_ignore_all = 0 [[email protected] net]# cd ipv4/ [[email pro

linux入门(三)常见Linux指令及其用法

一.上回说到说到Linux的shell指令运行的原理,这回我们来看看Linux中shell的权限管理,所谓的"权限"是指某一类人做某一件事的权利. 在shell中这一类人被分为了三种:(1)文件拥有者user (2)文件拥有组group (3)其他人other 每一类人对应了三种权限:读r,写w,执行x 我们来举个栗子先: 对于上面的四个文件,第一列对应了文件的类型,类型为d,后面的9 列可以分为三组,分别对应user.group.other,每一组有三个操作:读写执行,如果为-,则说

剖析linux下Find指令

无论在何种系统下,都需要进行查找.Windows下进行查找我们已经轻车熟路了,但是linux下该如何进行查找呢?今天我就来讲讲如何进行查找. 通常情况下我们都是使用whereis和locate来进行查找的.但是如果遇到真的找不到的情况,就需要用find指令来进行查找了.但是使用find命令有一个缺点就是比较慢,因为whereis和locate都是利用数据库来查找数据的,速度相对来说是比较快的,但并没有实际查询硬盘,所以比较节省时间.在这些查找指令中,find可谓是十分强大的.find命令在目录结

linux入门(二):find指令的用法

我们知道,Linux下find命令可以在目录中搜索指定文件,并进行相应的操作.find命令提供了相 当强大的查找条件,功能很强大.所以今天我们来分析一下find的用法.与which和whereis不同的是 find在查找文件的时候是真正的在遍历所有的文件,如果find没有找到你所需要的目标的话,那系统中 一定不存在你所需要的文件,因此find在使用的时候会比其他的查找指令更详尽一些,当我们在运行一 个很消耗资源的find指令的时候,人们倾向于将其放在后台运行,因为遍历一个大的文件系统可能需要 很

Linux平台下的基础指令

既然换了写代码的操作平台,就先来对操作的平台做个小小小小...的介绍:windows和Linux都是操作系统. 什么是操作系统?: 操作系统是搞管理的软件(管家,将要做的内容分发给下面的执行者).而我们用电脑的人是主任,不需要知道内部做了什么,只要用电脑达到我们的目的即可. 操作系统要怎么管理?: 通过数据(有员工信息你才知道他是厨师还是园丁,这些信息就是数据)来执行决策(任务).管理的过程是先进行描述(形成结构体),然后组织(形成链表). 进入主题,介绍在Linux平台下新手需要掌握并要熟悉运

Linux下crontab命令的用法

cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. 服务的启动和停止 cron服务是linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: Linux代码   /sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service cr