您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
二周 发布于2020年02月04日 15:37

原创 Linux查找文件-find命令

1991 次浏览 读完需要≈ 7 分钟 LinuxShell

内容目录

find命令按照指定的条件来查找文件,可以使用文件的特性作为查找条件(比如文件名,文件大小,文件权限,修改时间,权限等),一旦查找成功,则将信息打印出来,格式为:find 查找路径 查找条件 操作

查找路径:可以为相对目录,也可以为绝对目录

查找条件:参考下面的表

参数 作用
-name 匹配名称
-perm 匹配权限( mode为完全匹配,-mode为部分包含即可)
-user 匹配所有者
-group 匹配所属组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比f1新但是比f2旧的文件
--type b/d/c/p/l/f 匹配文件类型(后面的字母依次表示为设备块,目录,字符设备,管道,链接文件,文本文件)
-size 匹配文件大小(+10kb表示查找超过10kb的文件,-10kb表示小于10kb的文件)
-prune 忽略某个目录
-exec ... {} \; 后面可用于进一步处理搜索结果的命令

注意:ctime并不是文件的创建时间,而且Linux默认不保存文件的创建时间,但是有些系统保存文件的创建时间。

下面演示一些常用用法

  1. 查找当前目录下的所有.txt文件并复制到txt目录下面

    find .-name'*.txt'-type f -exec cp {} ./txt \;

  2. 查找7天前被访问过的文件

    find . -atime +7

  3. 查找10分钟内访问过的文件

    find . -amin -10 -type f

  4. 查找比file1修改时间更新的文件

    find -type f -newer file1

  5. 查找比file1修改时间更老的文件

    find -type f -newer !file1

  6. 查找文件大小超过10k的文件(可用的单位有 b块,c字节,w字,k千字节,M兆字节,G)

    find . -type f -size +10k

  7. 查找权限为755的文件

    find . -perm 755 -type f

  8. 查找文件并删除

    find . -type f -name '*.txt' -delete

-exec ... {} \;参数是重点,其中{}表示find命令搜索出的每一个文件,并且命令的结尾必须是\;

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论