使用find命令查找文件

时间:2023-03-08 16:40:42

find命令用法

  • 语法:
 find (选项) (参数)
  • 常用选项:
 -exec<执行命令>: 假设find指令的回传值为True,就执行该指令;
-ls: 假设find指令的回传值为True,就将文件或目录名称列出到标准输出;
-name<范本样式>: 指定字符串作为寻找文件或目录的范本样式;
-path<范本样式>: 指定字符串作为寻找目录的范本样式;
-size<文件大小>: 查找符合指定的文件大小的文件;
-type<文件类型>: 只寻找符合指定的文件类型的文件;
  • 参数:起始目录--查找文件的起始目录
  • 实例:

列出当前目录及子目录下的所有文件和文件夹

 find .

在/home目录下查找以.txt结尾的文件名(使用 -iname 选项忽略大小写)

 find /home -name "*.txt"

在当前目录及子目录下查找所有以.txt和.pdf结尾的文件名

 find . -name "*.txt" -o -name "*.pdf"

匹配文件路径或者文件

 find /usr/ -path "*local*"

基于正则表达式匹配文件路径 (-iregex 忽略大小写)

 find . -regex ".*\(\.txt\|\.pdf\)$"

否定参数:找出/home下不是以.txt结尾的文件

 find /home ! -name "*.txt"

根据文件类型查找

 find . -type 类型参数

类型参数列表:

f 普通文件

l 符号链接

d 目录

c 字符设备

b 块设备

s 套接字

p Fifo

根据文件大小查找

 find . -size 文件大小单元

文件大小单元列表:

b 块(512字节)

c 字节

w 字(2字节)

k 千字节

M 兆字节

G G字节

查找大于10k的文件

 find . -size +10k

借助 -exec 选项与其他命令结合使用

找出/home目录下所有的.txt文件并删除 (-ok与-exec命令相同,但会给出提示是否执行相应操作)

 find /home -name ".txt" -exec rm {} \;

用脚本执行多条指令

 -exec ./rm_txt.sh {} \;

使用xargs工具

查找包含字符'abc'的文件名

 find . -type f | xargs grep -l 'abc'