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'