在Linux中,我们经常要查找某个文件,但不知道放在哪里了,针对这种情况,我们可以使用以下这些命令来进行文件的搜索:
Which: 查看可执行文件的位置。
whereis: 查看文件的位置。
locate: 配合数据库查看文件位置。
Find: 实际搜寻硬盘查询文件名称。
在这里,我们重点介绍Find命令:
Find指令:
1.命令功能:
Find指令主要用来查找文件,在文件树(目录结构)中搜索文件,并执行指定的操作。
2.命令格式:
find pathname -options [-print -exec -ok ...]
3.命令参数:
pathname: find命令所查找的目录路径。用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提
示,让用户来确定是否执行。
4.命令选项:
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-depth:在查找⽂件时,⾸先查找当前⺫录中的文件,然后再在其⼦⺫录中查找。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内, + n表示文件更改时间距现在n天以
前。 find命令还有-atime和-ctime 选项,但它们都和-mtime选项相同。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n: [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
5.执行命令
(1)-name
通过搜索文件名h.txt来搜索该名称的文件:
(2)-perm
通过搜索文件权限来搜索文件,下例为搜索权限为666(即所有用户权限均为读、写权限)的文件:
(3)-depth
通过搜索文件的深度搜索文件 下例搜索最大深度为3、名为file的文件
(4)-user
通多搜索文件的所有者搜索文件,下例搜索拥有者为root的文件:
(5)-group
通过搜索文件的所属组搜索文件,下例搜索所属组为root的文件:
(6)-mtime、-atime、-ctime -n +n
通过搜问文件的-mtime、-atime、-ctime搜索文件 下例搜索更改时间在距现在两天之内的文件:
(7)-type
通过搜索文件的类型搜索文件 下例搜索文件类型为普通文件的文件:
(b - 块设备文件、 d - 目录、c - 字符设备文件、 p - 管道文件、 l - 符号链接文件、f - 普通文件。)
(8)-size n[c]
查找文件长度为n块的文件,带有c时表示文件长度以字节计。下例搜索长度为50k的文件