Linux find 常用语法

介绍

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

命令格式

find 搜索路径 [选项] 搜索内容
find 是比较特殊的命令,它有两个参数:

  1. 第一个参数用来指定搜索路径;
  2. 第二个参数用来指定搜索内容。

常用的命令

-empty : 空的文件
-gid n :gid 是 n 用户组的数字id
-group name : 用户组 group 名称是 name
-path p, -ipath p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
-pid n : process id 是 n 的文件	

举例

按照文件名搜搜

  1. -name: 按照文件名搜索;
  2. -iname: 按照文件名搜索,不区分文件名大小;
  3. -inum: 按照 inode 号搜索;

将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
find . -name "*.c" # 内容加""引号

按照文件类型搜索

-type c : 文件类型是 c 的文件。
			d: 目录
			c: 字型装置文件
			b: 区块装置文件
			p: 具名贮列
			f: 一般文件
			l: 软链文件
			s: socket

将当前目录机及其子目录下的一般文件列出来
find . -type f

按照文件大小搜索

  1. -size[±]大小:按照指定大小搜索文件

将当前目录机及其子目录下大于20k的文件列出来
find -size +20k

逻辑运算符

  1. -a:and逻辑与
  2. -o:or逻辑或
  3. -not:not逻辑非

在当前目录下搜索大于2KB,并且文件类型是普通文件的文件
find.-size +2k -a -type f

在当前目录下搜索3天以内修改过,并且权限是644的文件
find.-mtime -3 -a -perm 644

在当前目录下搜索文件名不是cangls的文件
find.-not -name cangls

其他选项

-exec选项

find 搜索路径 [选项] 搜索内容 -exec 命令 {} \;

这里的"{}“和”\;“是标准格式,只要执行”-exec"选项,这两个符号必须完整输入。可以用 + 替代

这个选项的作用其实是把 find 命令的结果交给由"-exec"调用的命令 2来处理。"{}"就代表 find 命令的査找结果。

查找当前目录下的文件,并且搜索包含com的行
find . -type f -exec grep com {} +
末尾的加号也可以替换为 ‘\;’

“-exec"选项的作用是把 find 命令的结果放入”{}"中,再由后面的命令来处理。
在这个例子中就是用"grep com"命令直接处理,会使 find 命令更加方便。

-ok选项

“-ok"选项和”-exec"选项的作用基本一致,区别在于:"-exec"的命令会直接处理,而不询问;
"-ok"的命令在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行。
例如:find . -type f -ok rm {} \;(不能用 + 替换 ‘\;’ )
< rm … ./b > ? <-需要用户输入y,才会执行
我们这次使用rm命令来删除find找到的结果,删除的动作最好确认一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值