linux中查找文件
- 使用 find 命令
- 使用 locate 命令
- locate和find区别
第一步要做的是通过SSH连接到你的Linux,在Linux中查找文件有两种方法。
使用 find 命令
find命令使用 Linux find命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下:
- 通过文件名查找
find -name 文件名
find /etc/ -name passwd ###查找/etc目录下的passwd
- 通过文件嵌套层数查找
find -maxdepth 层数 ###查找文件时最大层数
find -mindepth 层数 ###查找文件时最小层数
- 通过文件所属组或文件所有人查找
find -user 所有人
find -group 所属组
find -user 所有人 -group 所有组 ###查找属于该所有人并且是该所有组的文件
find -user 所有人 -o -group 所有组 ###查找属于该所有人或者属于该所有组的文件
find -not -user 所有人 ###查找不属于该所有人的其他文件
find -not -user 所有人1 -o -user 所有人2 ###查看不属于所有人1或者属于所有人2的文件
- 通过文件大小查找
find -size 文件大小 ###查找指定文件大小文件
find -size -文件大小 ###查找小于指定文件大小的文件
find -size +文件大小 ###查找大于指定文件大小的文件
- 按文件修改时间查找
find -cmin 1 ###查找修改时间为1min的文件
find -cmin -1 ###查找修改时间小于1min的文件
find -cmin +1 ###查找修改时间大于1min的文件
- 通过文件类型查找
find -type 类型
f:文件| l:软链接| d:目录| c:字符设备| b:快设备| s:套接字
- 通过文件权限查找
find -perm 444 ###查找权限值为444的文件
find -perm /444 ###查找文件所有人有读权限,或所有组有读权限,或者其他人有读权限的文件
find -perm -444 ###查看文件所有人有读权限,并且所有组有读权限,并且其他人有读权限的文件
- 查找到文件后,如果需要进一步操作,比如复制,查看,则需要使用到-exec 参数
find -exec 命令 {} \; ###{}表示前面find查找出的文件
使用 locate 命令
要在Linux中使用locate命令,首先需要安装它。
如果你正在使用Ubuntu,运行下面的命令来安装locate:
- apt-get update
- apt-get install mlocate
如果你使用的是CentOS,运行下面的命令来安装locate: - yum install mlocate
locate是一种比find更快的方式,因为它在数据库中查找文件。要更新搜索数据库,运行下面的命令: - updatedb
使用locate查找文件的语法: - locate test.file
就像find命令一样,locate也有很多选项来过滤输出。要了解更多你可以查看Linux Locate命令的手册。 - man locate
locate和find区别
locate:非实时地,直接在系统文件数据库中查找,速度比较快,但查找结果不准确。linux在运行过程中会将文件系统数据写入一个数据库(每隔一段时间(比如一个小时)才会写入数据库),locate命令就是从该数据库中查找的。
find:实时查找文件命令,通过遍历指定目录所有文件进行查找,速度较慢,但可以根据多种标准进行查找,功能强大。