基本语法:find 路径 表达式
一、按文件名搜索:
使用
-name
选项指定文件名进行搜索符合关键词的文件或者文件夹语法:find 路径 -name 文件关键词
/ 代表根目录,它是整个文件系统的顶级目录。使用
/
作为起始位置进行搜索意味着将扫描整个文件系统,包括所有子目录和文件。
示列:根目录下,扫描整个文件系统查找jdk
二、按类型搜索:
使用
-type
选项指定文件类型进行搜索。语法:find 路径 -type 类型
类型如下:
f
:普通文件 (regular file)。d
:目录 (directory)。l
:符号链接 (symbolic link)。也被称为软链接,是一个指向另一个文件或目录的文件。它类似于快捷方式。当你使用符号链接时,打开该链接文件将实际上打开链接所指向的文件或目录。c
:字符设备文件 (character device file)。它代表了与字符设备(如终端、键盘等)进行交互的接口。字符设备以字节流的形式进行输入和输出。典型的例子是/dev/tty
,表示当前终端设备。b
:块设备文件 (block device file)。它代表了与块设备(如硬盘驱动器、USB 设备等)进行交互的接口。块设备按固定大小的数据块进行读取和写入。典型的例子是/dev/sda
,表示第一个硬盘驱动器。s
:套接字 (socket)。套接字是用于进程间通信的一种机制,可以在网络上发送和接收数据。在Linux系统中,套接字通常以文件的形式存在于特定目录中。p
:命名管道 (named pipe)。也被称为FIFO(First In First Out),是一种特殊类型的文件,用于进行进程间通信。它提供了两个进程之间通过读取和写入文件来进行数据交换的方式。
示例:查找/home目录下的文件夹
示例:查找/home目录下的文件
三、按大小搜索:
使用
-size
选项指定文件大小进行搜索可使用
+
表示大于某个值,-
表示小于某个值,以字节为单位。语法:find 路径 -size +或- 数据单位
常见数据单位
c
:以字节块(512字节)为单位k
:以千字节(KB)为单位M
:以兆字节(MB)为单位G
:以千兆字节(GB)为单位
示例:查找home目录下大于100MB的文件
示例:查找home目录下小于1kb的文件
示例:查找1TB的文件或目录
四、根据时间搜索:
使用
-mtime
、-atime
和-ctime
选项指定文件的修改、访问和创建时间进行搜索可使用
+
表示更早,-
表示更晚,以天为单位语法:find 路径 -mtime或-atime或-ctime +或-
-mtime
:按照文件的修改时间进行搜索。-atime
:按照文件的访问时间进行搜索。-ctime
:按照文件的创建时间进行搜索。这些选项后面可以跟随一个正数或负数来指定相对于当前时间的天数。具体解释如下:
- 使用
+
表示更早,例如:-mtime +7
表示修改时间比当前时间早于 7 天的文件。- 使用
-
表示更晚,例如:-atime -3
表示访问时间比当前时间晚于 3 天的文件。以下是一些示例命令:
搜索最近 7 天内被修改的文件:
find /path -mtime -7
搜索最近 3 天内被访问的文件:
find /path -atime -3
搜索创建时间在特定日期之前的文件(假设日期为2022年1月1日):
find /path -ctime +365
五、执行操作:使用-exec
选项执行特定的操作:
如复制、删除等。
语法:find 路径 -name 关键词 -exec 特定操作 {} \
示例:把home目录下的.sh文件都复制到/home/java
示例:删除/home/java目录下的.sh文件
示例:移动/home目录下的.sh文件到/home/java目录下