linux系统find文件查询命令 |
您所在的位置:网站首页 › linux系统搜索命令 › linux系统find文件查询命令 |
find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等搜索文件。但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。 find 命令的基本信息如下:命令名称:find。英文原意:search for files in a directory hierarchy.所在路径:/bin/find。执行权限:所有用户。功能描述:在目录中查找文件。 命令格式 find path -option [ -print ] [ -exec -ok command ] {} \; 例如 # find . -name "*.c" -name之前的.可加可不加 # find /var/log -type f -mtime +7 -ok rm {} \; -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写 -empty : 空的文件 # find 搜索路径 [选项] 搜索内容 find 是有两个参数:第一个参数用来指定搜索路径;第二个参数用来指定搜索内容。路径:所要搜索的目录及其所有子目录。默认为当前目录。find命令在子目录中遍历的深度参数:-maxdepth,-mindepth 常用搜索选项 一、按照文件名搜索 选项:-name: 按照文件名搜索;-iname: 按照文件名搜索,不区分文件名大小;-inum: 按照 inode 号搜索; 搜索的文件名必须和搜索内容完全一致才能找到。如果只包含部分搜索内容,则不会找到。如果希望不区分大小写,就要使用 -iname 来搜索文件。 #如果知道文件名,则可以用"ls -i filename"来査找inode号。按照 inode 号搜索文件,也是区分硬链接文件的重要手段,硬链接文件的 inode 号是一致的。 二、按照文件大小搜索 选项:-size[+-]大小:按照指定大小搜索文件 这里的"+"的意思是搜索比指定大小还要大的文件,"-" 的意思是搜索比指定大小还要小的文件。find 命令的默认单位不是字节。如果单位为b或不写单位,则按照 512Byte搜索,如果想要按照字节搜索,则需要加搜索单位"c"。 'c' for bytes #搜索单位是c,按照字节搜索 'w' for two-byte words #搜索单位是w,按照双字节(中文)搜索 'k'for Kilobytes (units of 1024 bytes) #按照KB单位搜索,必须是小写的k 'M' for Megabytes (units of 1048576 bytes) #按照MB单位搜索,必须是大写的M 'G' for Gigabytes (units of 1073741824 bytes) #按照GB单位搜索,必须是大写的G 三、按照修改时间搜索 选项: -atime [+-]时间: 按照文件访问时间搜索,访问时间(atime——access time):就是上次访问这个文件的时间。 -mtime [+-]时间: 按照文件修改时间搜索,修改时间(mtime——modification time):就是文件的内容上一次发生改变的时候的时间。 -ctime [+-]时间: 按照改变文件时间搜索,改变时间(ctime——change time):就是文件的inode改变的时间(什么是inode?)当你往一个文件中添加数据或者删除数据的时候,修改文件所有者的时候,链接改变的时候,文件的ctime就会发生改变。 [root@localhost ~]#find.-mtime -5 #查找5天内修改的文件 "-5"指的是 5 天内修改的文件,"5"指的是前 5~6 天那一天修改的文件,"+5"指的是 6 天前修改的文件。 find 不仅可以按照 atime、mtime、ctime 来査找文件的时间,也可以按照 amin、mmin 和 cmin 来査找文件的时间,区别只是所有 time 选项的默认单位是天,而 min 选项的默认单位是分钟。-newer参数,我们可以指定一个用于比较时间戳的参考文件,然后找出比参考文件更新的所有文件。 四、按照权限搜索 -perm 权限模式:査找文件权限刚好等于"权限模式"的文件,査找的权限必须和指定的权限模式一模一样。 -perm -权限模式:査找文件权限全部包含"权限模式"的文件 -perm +权限模式:査找文件权限包含"权限模式"的任意一个权限的文件 五、按照所有者和所属组搜索 选项: -uid 用户 ID:按照用户 ID 査找所有者是指定 ID 的文件-gid 组 ID:按照用户组 ID 査找所属组是指定 ID 的文件-user 用户名:按照用户名査找所有者是指定用户的文件-group 组名:按照组名査找所属组是指定用户组的文件-nouser:査找没有所有者的文件,"-nouser"选项比较常用,主要用于査找垃圾文件。在 Linux 中,所有的文件都有所有者,只有一种情况例外,那就是外来文件。比如光盘和 U 盘中的文件如果是由 Windows 复制的,在 Linux 中査看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者。 六、按照文件类型搜索 选项: -type d:查找目录-type f:查找普通文件-type l:查找软链接文件。 文件类型 类型参数 普通文件 f 符号文件 l 目录 d 字符设备 c 块设备 b 套接字 s 管道文件 p 七、逻辑运算符 选项:-a:and逻辑与-o:or逻辑或-not:not逻辑非1) -a:and逻辑与 [root@localhost ~]# find.-size +2k -a -type f 2) -o:or逻辑或 3) -not:not逻辑非 其他选项 1) -exec选项 [root@localhost ~]# find 搜索路径 [选项] 搜索内容 -exec 命令2{}\; 这里的"{}"和"\;"是标准格式,只要执行"-exec"选项,这两个符号必须完整输入。这个选项的作用其实是把 find 命令的结果交给由"-exec"调用的命令 2 来处理。"{}"就代表 find 命令的査找结果。 [root@localhost test]# find.-perm 444 -exec ls -l {}\; 2) -ok选项 "-ok"选项和"-exec"选项的作用基本一致,区别在于:"-exec"的命令会直接处理,而不询问;"-ok"的命令 2 在处理前会先询问用户是否这样处理,在得到确认命令y后,才会执行。 xargs参数 将标准输入转换成命令行参数 find -type f -name "*.txt" -print0 |xargs -0 rm -f #将匹配到的文件删除,xargs -0将 \0作为输入定界符。 find -type f -name "*.c" -print0 | xargs -0 wc -l #统计所有c程序文件的行数额外可进行的动作参数 cd $del_path find ./ -type -d -ctime +10| args rm -rf #删除10天前的日志文件 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |