关于作者李先生(Lemon),高级运维工程师(自称),SRE专家(target),35岁梦想买辆保时捷,喜欢钻研底层技术并认为打好基础才是王道。所有新技术都离不开操作系统(CPU、内存、磁盘)、网络等,坚持输入输出,记录自己的学习,在平凡中不断前行,总有一天会遇到不一样的自己。公众号:王运维(ID:Leeeee_Li)。1.前言我平时喜欢做笔记。我干了四五年,笔记有几千条。最近离职,加上职场瓶颈,准备复习整理相关笔记,整理知识点,后面可能会有一系列的博文输出,从基础到高级。2.find命令find命令是Linux系统管理员工具库中最强大的工具之一。您可以使用find命令根据权限、类型、日期、所有权、大小等搜索文件和目录。它也可以与grep或sed等结合其他工具使用。语法:find[options][path...][expression]3.练习1.按文件名查找find/-nameaccess.log2.按扩展名查找文件find。-name"*.txt"#在当前目录下查找所有txt后缀的文件3.根据权限查找文件find.-perm755-print#在当前目录下查找755权限的文件find.-perm-007-print#查找所有用户都可以读、写、执行的文件4、按属主查找文件find~-grouplile-print#在属主为lile的~目录下查找文件find/home-group-print#查找属主账户被删除的文件,在/etc/passwd中查找被删除的文件丢失的账户find~-userlile-print#查找~目录下属于lile的文件find/home-nouser-print#查找主账号删除的文件,查找/etc/passwd中不再存在的文件5.按修改日期查找文件find.-mtime-3-print#查找修改时间在3天内的文件find.-mtime-2-print#查找修改时间为2天前的文件6.按类型查找文件find.-typed-print#查找当前目录下的所有目录find.!-typed-print#查找当前目录下除目录外的所有类型的文件7.按大小查找文件find.-size100c-print在当前目录中查找文件长度为100字节的文件find。-size+1000000c-print在当前目录中查找文件大于1M字节的文件find。-size+10-print在当前目录中查找超过10个block的文件(1Block=512bytes)8.排除某个目录find/shell-path"/shell/tt"-prune-o-print#Findother/shell目录下除tt目录外的项目find/shell-path"/shell/tt"-prune-o-name"*.txt"-print#在/shell目录下查找记录除tt目录外的txt文件9.目录及文件查找顺序find/shell-depth-print#withdept:先处理目录的子内容,再处理目录本身#nodept:处理目录本身首先,然后处理目录10.定期搜索找到。-name"[A-Z]*"-print#查找当前目录及子目录,查找文件名以大写字母开头的文件find.|xargsgrep"YZS"#查找文件文件夹下具体哪些文件包含某个字段find.-regextype"posix-egrep"-regex".*\.(cc|h)"|xargscat|grep-v^$|wc-l11,搜索对比结果做相关操作find。-typel-execls-l{}\;#查找文件类型为软链接的文件find.-typef-打印|xargsfile#文件分类find/-name"core*"-print|xargsecho"">/tmp/core.log#找到内存信息转储文件coredump,保存到/tmp/core.logfind.-名称“*.txt”-print0|xargs-0rm-rf#找到后删除,慎用find/-path'/etc/ssl/certs'-prune-o-name*.pem|xargs-icp{}./pem#查找并复制catfile.txt|xargs#将多行转换为单行catfile.txt|xargs-n3#指定每行的参数个数x每次执行都需要参数Numberecho"splitXsplitXsplitXsplit"|xargs-dX#用自己指定的分隔符分割echo"splitXsplitXsplitXsplit"|xargs-dX-n2#用自己指定的分隔符分割,并指定每行输出的个数catargs|xargs-I{}bashcecho.shp{}1#从cat读取数据,每次读取一个就替换12,匹配多个文件find.\(-name"*.txt"-o-name"*.pdf"\)13.find排除某个目录find/-path'/etc/ssl/certs'-prune-o-name*.pem#findfindpath-path'excludedirectorypath'-prune-o...四、查找时间点问题find时间相关的选项包括-atime(访问时间)、-ctime(创建时间)、-mtime(属性修改时间),参数为n;find后面的时间。-atimen这里的n表示找到的在n天之前“一天之内”被访问过的文件。-atime+n列出找到的在n天之前访问过的文件(不包括n天本身)。-atime-n列出n天内(包括n天本身)被访问过的文件实例:如果当前时间是20171209的15:00,则具体时间范围由以下查询表示1:创建文件touch-a-d"2021-01-0115:00"a.txttouch-a-d"2021-01-0215:00"b.txttouch-a-d"2021-01-0315:00"c.txttouch-a-d"2021-01-0415:00"d.txttouch-a-d"2021-01-0515:00"e.txttouch-a-d"2021-01-0615:00"f.txttouch-a-d“2021-01-0715:00”g.txttouch-a-d"2021-01-0815:00"h.txt2:下面三个命令的结果是:find.-atime2**找出前两天(从现在-72小时~~-48小时)访问过的文件find.-atime-2找出从现在起两天内(即48小时内)访问过的文件find.-atime+2查找两天前,不包括两天前的前一天(即不包括-2和2)访问的文件之前(这个时间之前的72小时)3.图形分析
