find命令
Published on April 09, 2025
Linux find命令详解
find命令是 Linux 系统中非常强大且常用的文件查找工具,它可以在指定的目录及其子目录下,按照各种条件来查找文件或目录。
命令语法
find [path] [options] [expression]
- path:指定查找的起始目录路径,如果不指定,默认从当前目录开始查找。
- options:用于指定查找的条件和方式。
- expression:用于进一步筛选和处理找到的文件或目录的表达式。
常用选项
按文件名查找
- 选项:
-name - 示例:
find /home -name "*.txt" - 说明:在
/home目录及其子目录下查找所有扩展名为.txt的文件。文件名支持通配符,*表示匹配任意字符序列,?表示匹配单个字符。
按文件类型查找
- 选项:
-type - 示例:
find /var -type d - 说明:在
/var目录及其子目录下查找所有目录。常见的文件类型参数有:f:普通文件d:目录l:符号链接b:块设备文件c:字符设备文件
按文件大小查找
- 选项:
-size - 示例:
find /data -size +10M - 说明:在
/data目录及其子目录下查找大小大于 10MB 的文件。-size参数的常见格式有:+n:表示大于n单位(单位可以是b字节、k千字节、M兆字节、G吉字节等)-n:表示小于n单位n:表示正好等于n单位
按文件权限查找
- 选项:
-perm - 示例:
find /etc -perm 644 - 说明:在
/etc目录及其子目录下查找权限为644的文件。权限可以用数字表示,也可以用符号表示(如u=rwx,g=rx,o=r)。
按文件所有者查找
- 选项:
-user - 示例:
find /home -user john - 说明:在
/home目录及其子目录下查找所有者为john的文件。
按文件所属组查找
- 选项:
-group - 示例:
find /var/log -group adm - 说明:在
/var/log目录及其子目录下查找所属组为adm的文件。
按文件修改时间查找
- 选项:
-mtime - 示例:
find /backup -mtime +7 - 说明:在
/backup目录及其子目录下查找修改时间大于 7 天的文件。mtime参数的常见格式有:+n:表示大于n天-n:表示小于n天n:表示正好n天
常用表达式
逻辑与
- 表达式:
-and或-a - 示例:
find /home -name "file.txt" -and -user root - 说明:在
/home目录及其子目录下查找名为file.txt且所有者为root的文件。
逻辑或
- 表达式:
-or或-o - 示例:
find /home -name "file1.txt" -or -name "file2.txt" - 说明:在
/home目录及其子目录下查找名为file1.txt或者file2.txt的文件。
逻辑非
- 表达式:
! - 示例:
find /home ! -name "*.bak" - 说明:在
/home目录及其子目录下查找所有文件名不是以.bak结尾的文件。
Categories: