find
命令是在 中非常强大的文件查找工具。它可以根据多种标准来查找文件,如文件名、类型、大小、修改时间等。
基本语法
find [路径] [表达式]
路径:所要查找文件的所在目录。
表达式:查找文件的现对于的参数选择。
常用选项
按名称查找: -name
find [路径] -name "文件名"
例如,当你想查找一个文件名,但是不知道具体路径,只知道是一个.txt文件
find /home/user -name "*txt"
按类型查找: -type
find [路径] -type [类型]
例如,查找/home/user下面的符号链接:
find /home/user -type
f
:文件d
:目录l
:符号链接b
:块设备文件c
:字符设备文件
按用户查找:-user
find [路径] -user [用户名或UID]
按组查找:-group
find [路径] -group [组名或GID]
按权限查找:
find [路径] -perm [权限]
按文件大小查找:
find [路径] -size [单位]
+
:大于
-
:小于[数字]:等于 [数字]c:字节数 [数字]k:千字节数 [数字]M:兆字节数 [数字]G:吉字节数查找home目录下文件大小大于100k的文件
find /home -size +100k
按修改时间查找:
find [路径] -mtime [+|-][天数]
+
:查找最后修改时间大于给定天数的文件
-
:查找最后修改时间小于给定天数的文件
按访问时间查找:
find /home -mtime -1
按更改时间查找:
find [路径] -ctime [+|-][天数]
组合条件:使用逻辑运算符 &&
(与)、||
(或)和 !
(非)来组合多个条件:
find [路径] ( -name "*.txt" -o -name "*.doc" ) -print
删除找到的文件:
find [路径] -name "*.tmp" -exec rm {} \;
-exec
将搜索的结果集执行某一指令,上文在删除查找的文件就是利用-exec参数先查找到文件,在让查询结果执行 rm命令
在使用
-exec
时,需要在命令后面加上\;
来结束命令。如果
-exec
后面的命令中有空格,需要用引号把命令包起来。使用
-exec
删除文件时要特别小心,最好先检查输出再执行删除操作。