当前位置: 首页 > 后端技术 > Java

linux系统下查找文件命令总结,厉害了!

时间:2023-04-01 19:36:29 Java

查看命令的绝对路径:用于查找并显示给定命令的绝对路径,也可以查看环境变量中的PATH参数。[root@localhost~]#whichbash/usr/bin/bash[root@localhost~]#whichlsaliasls='ls--color=auto'/usr/bin/ls查找具体文件:whereis命令用于locate指令二进制程序、源代码文件、manpage等相关文件路径,该命令只能用于搜索程序名[root@localhost~]#whereis--help语法格式:[whereis[option]filename]-b#只查找二进制文件-m#只查找man文档-s#只查找源代码使用whereis-b命令查找二进制文件和帮助手册。[root@localhost~]#whereis-bifconfigifconfig:/usr/sbin/ifconfig[root@localhost~]#whereis-mifconfigifconfig:/usr/share/man/man8/ifconfig.8.gz缓存查找文件:locate搜索一个数据库/var/lib/mlocatedb,这个数据库包含了所有本地文件信息,linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令是找不到最新变化的文件的,为了为避免这种情况,您可以在使用locate之前使用updatedb命令手动更新数据库。updatedb命令会根据/etc/updatedb.conf.[root@localhost~]#yuminstall-ymlocate[root@localhost~]#locate--help语法格式:[locate[option]filename]-ddirectory#指定数据库所在目录-i#忽略大小写差异-r#按照正则表达式,使用locate命令查询文件[root@localhost~]#updatedb[root@localhost~]#locate/etc/passwd/etc/passwd/etc/passwd-遍历文件搜索:find命令可以说是最重要的搜索命令,它有很多参数。[root@localhost~]#find--help语法格式:[find[目录][属性]文件名]-name#按文件名-大小查找#按大小查找-用户#按属主查找-perm#根据权限Search-type#Searchbytype-time#Searchbytime-inum#Querybyinode-exec#search后执行命令Search-nameSearchbyfilename:commonquerywildcard\*#匹配任意一个或多个字符?#匹配任意字符[]#指定范围,外面加引号可以在/var/目录下查找以.log结尾的文件[root@localhost~]#find/var/-name"*.log"/var/log/tuned/tuned.log/var/log/audit/audit.log/var/log/anaconda/X.log/var/log/anaconda/program.log....省略....寻找/root/目录下[1-3之间],结尾是一个.txt文件[root@localhost~]#ls1.txt2.txt3.txtCatalogFile[root@localhost~]#find/root/-name"[1-3].txt"/root/1.txt/root/2.??txt/root/3.txt在/etc/目录下搜索任意6个字符开头的文件[root@localhost~]#找到/etc/-name"??????"/etc/grub.d/etc/grub.d/README/etc/shells/etc/init.d....省略....-size查找unitsbysize是一个blockdatablock是512bytes1M->1024k->2048blocks(1blockis0.5kwhichis512bytes)100M->102400k->204800blocks在/etc/目录下找文件,小于10kroot@localhost~]#find/etc/-size-10k/etc/crypttab/etc/.pwd.lock/etc/environment....省略....在/etc/目录下查找大于1M的文件[root@localhost~]#find/etc/-size+1M#查询大于1M的文件/etc/udev/hwdb.bin/etc/selinux/targeted/active/policy.kern/etc/selinux/targeted/contexts/files/file_contexts.bin/etc/selinux/targeted/policy/policy.31....省略...#注:如果没有+-sign,就是精确到这么大的尺寸,一般用+或者-号来表示一个范围。-user根据属主和权限在/root目录下查找属于wang用户的文件[root@localhost~]#find/root/-userwang/root/1.txt/root/2.??txt/root/3.txt#注意:该用户必须存在于系统中,否则会报错。在/boot/目录下找到文件,权限为644[root@localhost~]#find/boot/-perm0644/boot/grub2/device.map/boot/grub2/i386-pc/gcry_rmd160.mod/boot/grub2/i386-pc/acpi.mod/boot/grub2/i386-pc/gcry_rsa.mod....省略....-type根据type搜索-typef二进制文件(普通文件)-typelsoftlinkfile-typed目录搜索/usr/bin/目录,类型为二进制文件。[root@localhost~]#find/usr/bin/-typef/usr/bin/cp/usr/bin/gzip/usr/bin/alias/usr/bin/csplit/usr/bin/bash....省略....-timelookupbytimebydaysctimeatimemtimebyminutescminaminmmincchange#表示修改了属性:owner,group,permissionaaccess#hasbeenaccessed(viewed)mmodify#表示修改了内容120分钟内查找/e??tc/目录,修改内容的文件[root@localhost~]#find/etc/-mmin-120/etc//etc/resolv.conf/etc/group-/etc/gshadow-/etc/group/etc/gshadow....省略....查找/etc/目录下7天前修改过属性的文件[root@localhost~]#find/etc/-ctime+7/etc/resolv.conf/etc/group-/etc/gshadow-....omit....-inum根据i-node查询,有些文件有大量的硬链接,并且有相同的i-node,找到其中一个的i-node编号文件,并立即删除它们[root@localhost~]#find./-inum1024-execrm{}\;#删除/etc/目录下同i节点的数据-andorlogicconnector-a(andlogicand)-o(orlogicor)查找大于1k小于10k的文件[root@localhost~]#find/etc/-size+1k-a-size-10k/etc//etc/grub.d/00_header/etc/grub.d/20_ppc_terminfo/etc/grub.d/00_tuned/etc/rc.d/init.d/README/etc/rc.d/init.d/netconsole/etc/rc.d/init.d/network/etc/pam.d....省略....-exec命令执行连接器[查询格式]find...-exec命令{}\;{}#表示find查询的结果集\#是转义字符,不是使用命令别名,直接使用命令本身;#分号是表示语句的结束。#注意:固定格式,只能这样写。注意中间的空间。(公众号:网络工程师Aaron)--------------------------------------------------------------------解释:转义符的作用是什么?linux中有别名机制,比如rm删除一个文件,但是执行rm-i(使用whichrm查看命令别名),使用rm删除文件前会提示,因为参数rm-我。如果想使用命令的原意,可以加\进行转义,如:\rmtest.txt就不提示了,直接删除/var/log/目录下以.log结尾的文件,找到后执行ls-lDetails.[root@localhost~]#find/var/log/*.log-execls-l{}\;total1176drwxr-xr-x.2rootroot204Sep1809:12anacondadrwx------。2rootroot23Sep1809:12audit-rw------。1rootroot53001Sep1900:57boot.log-rw--------。1rootutmp384Sep1809:22btmpdrwxr-xr-x。2chronychrony6Apr1213:37chrony-rw------。1rootroot3523Sep1901:01cron-rw-r--r--1rootroot119414Sep1900:57dmesg-rw-r--r--1rootroot119599Sep1823:35dmesg.old-rw-r--r--。1rootroot1320Sep1900:23firewalld-rw-r--r--。1rootroot193Sep1809:05grubby_prune_debug....在/etc/目录中搜索名称以“init*”开头的文件。找到后只列出文件并过滤掉目录,执行ls-l显示详细信息。[root@localhost~]#find/etc/-name"init*"-a-typef-execls-l{}\;-rw-r--r--.1rootroot511Apr1101:09/etc/inittab-rw-r--r--.1rootroot798Apr1101:09/etc/系统配置/init-rwxr-xr-x。1rootroot54192018年1月2日/etc/sysconfig/network-scripts/init.ipv6-global-rw-r--r--。1rootroot30Apr1114:12/etc/selinux/targeted/contexts/initrc_context在/tmp/下找到yum.log文件,找到后直接删除[root@localhosttmp]#find/tmp/-名称yum.log-execrm{}\;[root@localhosttmp]#找到root,找到所有关于lyshark用户的文件,找到后直接删除。[root@localhost~]#find/-userlyshark-execrm-r{}\;find:'/proc/1465/task/1465/fd/6':没有这样的文件或目录查找:'/proc/1465/task/1465/fdinfo/6':没有这样的文件或目录查找:'/proc/1465/fd/5':Nosuchfileordirectoryfind:'/proc/1465/fdinfo/5':Nosuchfileordirectoryfind:'/root/Catalog':Nosuchfileordirectoryfind:'/home/lyshark':Nosuchfileordirectory#rm-r连同目录一起删除。报错原因:-exec不适合大范围传输,速度慢造成的。在root下搜索lyshark用户的文件,找到后删除,删除前提示是否删除。[root@localhost~]#find/-userlyshark-okrm-r{}\;find:'/proc/1777/task/1777/fd/6':Nosuchfileordirectoryfind:'/proc/1777/task/1777/fdinfo/6':没有这样的文件或d目录?y#-ok的使用和-exec一样,不同的是-ok,执行的时候会提示你是否进行下一步。资料来源:http://u6.gg/kq67b