1、功能说明
find命令用来在指定的路径下查找指定的文件。其格式如下:
find path-name [-options] [-print -exec -ok 命令 { } \ ;]
path-name:find命令查找的目录路径,例如可以用“.”表示当前目录,用“\”表示系统根目录。
-options:find命令的这个选项主要用来控制搜索的方式。下面列出“-options”选项常见的几个格式:
-name ‘字串’:查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]
-lname ‘字串’:查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]
-gid n:查找属于ID号为n的用户组的所有文件
-uid n:查找属于ID号为n的用户的所有文件
-empty:查找大小为0的文件或目录
-path ‘字串’:查找路劲发名匹配所给字串的所有文件,字串内可用通配符*、?、[]
-group ‘字串’:查找属于用户组名为所给字串的所有文件
-depth:在查找文件时,首先查找当前目录下的文件,然后在查找其子目录下的文件
-prune 目录:指出搜索时不搜索该目录。如果同时使用-depth选项,那么-prune选项将被find命令忽略
-size n:查找文件长度为n块的文件,带有c时表示文件长度以字节计
-user ‘字串’:查找属于用户名为所给字串的所有的文件
-mtime
-type 文件类型:按指定文件类型搜索。文件类型包括b(块设备文件)、c(字符设备文件)、f(普通文件)、l(符号链接)、d(目录)、p(管道)、s(socket文件)
-print:搜索结果输出到标准输出。
-exec:对搜索出符合条件的文件执行所给出的Linux命令,而不询问用户是否需要执行该命令。{ }表示shell命令的选项即为所查找到的文件。命令的末尾必须以“;”结束。【注意:“-exec 命令 {}
-ok:对搜索出符合条件的文件执行所给出的Linux命令。与-exec不同的是,它会询问用户是否需要执行该命令。
2、举例
(1)在系统根目录下,查找文件为普通文件,属于student用户的,2天以前的,并且查找时不包含/usr/bin目录的文件名为main.c的文件,并将结果输出到屏幕:
find / -path "/usr/bin" -prune -o -name "main.c" -user student -type f -mtime +2 -print
(2)对上例中搜索的结果进行删除操作:
find / -path "/usr/bin" -prune -o -name "main.c" -user student -type f -mtime +2 -print -exec rm {} \;
(3)查找系统中所有大小为0的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -al {} \;
(4)查找系统/var/logs目录中修改时间在7天以前的普通文件,然后以交互方式删除:
find /var/logs -type f -mtime +7 -ok rm {} \;
(5)在当前目录及子目录下查找所有“*.txt”的文件:
find . -name "*.txt" -print
(6)在用户自己的根目录下查找文件名以一个大写字母开头,紧接着是一个小写字母和两个数字,最后以“*.txt”结尾的文件:
find ~ -name "[A-Z] [a-z] [0-9] [0-9]*.txt"
(7)在/etc目录下查找文件属主为student用户的文件:
find /etc -user student -print
find :在指定的路径下查找指定文件…
最新推荐文章于 2023-08-28 18:10:29 发布