⑴、根据文件时间进行搜索
⑵Linux文件系统中每一个文件都有三种时间戳
⑶访问时间(-atime:用户最近一次访问文件的时间;
⑷修改时间(-mtime:文件内容最后一次被修改的时间。
⑸变化时间(-ctime:文件元数据(metadata,例如权限或所有权最后一次改变的时间。
⑹-atime,-mtime,-ctime作为时间参数,单位是天,可以使用+表示大于,-表示小于。
⑺[rootlocalhost ~]# find 。 -type f -atime
⑻#打印出正好在天前被访问过的文件
⑼[rootlocalhost ~]# find 。 -type f -mtime +
⑽#打印修改时间大于天的文件
⑾[rootlocalhost ~]# find 。 -type f -ctime -
⑿#打印出修改时间小于天的文件
⒀类似的参数还有,-amin(访问时间,-mmin(修改时间,-cmin(变化时间,以分钟为单位。
⒁find另一个漂亮的特性是-newer参数,我们可以指定一个用于比较时间戳的参数文件,然后找出比参数文件更新的所有文件。
⒂find 。 –type f –newer file.txt
⒃p 在当前目录找出比file.txt修改时间更长的所有文件。
⒄、基于文件大小的搜索
⒅搜索可以使用的单位
⒆b——块(字节; c——字节; w——字(字节;
⒇k——千字节 ; M——兆字节; G——吉字节。
⒈[rootlocalhost tmp]# find 。 -type f -size k
⒉[rootlocalhost tmp]# find 。 -type f -size +k
⒊[rootlocalhost tmp]# find 。 -type f -size -k
⒋、删除匹配的文件
⒌-delete可以用来删除find查找到的匹配文件。
⒍[rootlocalhost tmp]# find 。 -type f -name “.sWp” –delete
⒎#删除当前目录下所有的.swp文件
⒏、基于文件权限和所有权的匹配
⒐[rootlocalhost tmp]# find 。 -type f -perm
⒑#查找当前目录权限为的文件
⒒[rootlocalhost tmp]# find 。 -type f -user reed
⒓#查找当前目录文件所有者为reed的文件
⒔、结合find 执行命令或动作
⒕find命令可以借助选项-exec与其他命令进行结合。
⒖[rootlocalhost tmp]# find 。 -type f -user reed -exec chown cathy {} ;
⒗#将当前目录文件拥有者为reed的文件改为cathy
⒘{ }是一个特殊的字符串,对于每一个匹配的文件,{ }会被替换成相应的文件名。
⒙[rootlocalhost test]# find 。 -type f -mtime + -name “*.log” -exec cp {} /data/bk_log ;
⒚#将当前目录大于天的log文件复制到/data/bk_log目录
⒛[rootlocalhost test]# find /tmp/test/ -type f -name “*.txt” -exec printf “Text file: %s
①Text file: /tmp/test/File__.txt
②Text file: /tmp/test/file__.txt
③Text file: /tmp/test/data__.txt
④Text file: /tmp/test/data__.txt
⑤#列出目录的所有txt文件
⑥、跳过指定的目录
⑦有时间我们查找时需要跳过一些子目录
⑧[rootlocalhost test]# find 。 ( -name “jump_dir” -prune -o ( -type f -print
⑨# ( -name “jump_dir” -prune 指定要跳过的子目录的名字
⑩上面就是Linux中巧妙运用find命令的方法介绍了,只要合理运用find命令,就能达到意想不到的效果,在使用Linux命令时,我们不仅要会用,还有学会怎么用,你记住了吗?