当前位置: 首页 > Linux

linux搜索文件或目录

时间:2023-04-06 11:49:14 Linux

which命令查看“可执行文件”所在位置:which+[选项]+命令名注意:which只能搜索命令,即通过路径环境变量。所以最基本的功能就是寻找可执行文件。whereis命令查看文件位置:whereis+[option]+命令名-whereis命令用于查找二进制程序、源代码文件和帮助文件在文件系统中的位置。-b:只查找二进制文件;-m:只查找帮助文件;-s:只查找源文件;whereis可以找到系统目录下的用户自定义文件,但是找不到根目录下的文件,因为根目录是用户自定义目录,不是系统目录。locate配合数据库查找文件或目录:locate+[option]+文件或目录名locate不查找具体的目录,而是查找一个数据库/var/lib/mlocate/mlocate.db,里面包含了所有本地文件信息,Linux系统自动创建这个数据库,每周更新一次,所以使用locate命令无法找到最新更改的文件。为了避免这种情况,可以在使用locate之前使用updatedb命令;手动更新数据库。注意:locate只能搜索文件,文件名包含匹配项;prunepaths:PRUNEPATHS的值,多个字符串,排除路径;/etc/updatedb.conffind命令find搜索文件并执行指定操作:find+查询目录(即搜索范围)+【选项1】+查询参数+【选项2】+【执行操作】-选项1-name:query文件名;option2-print:将匹配结果输出到标准输出设备;option2-exec:搜索文件后执行后续命令,常用格式为:-execcommand{}\;即:将上一条命令的结果交给命令命令处理;{}指的是之前找到的信息。注意:尽量避免搜索范围过大,比如find/-namelilaoshi.file例如:找出根目录下名字为aaa的文件,输出到屏幕上,每个文件前后加一句:我有这个文件的文件名!find/root-name"*aaa*"-execechoihane{}这个文件!\;findbasedonthetimethefilechanged-atime+n/-n:访问或执行时间大于/小于n天的文件;-ctime+n/-n:对时间大于/小于n天的文件写入、更改inode属性(如更改所有者、权限或链接);-mtime+n/-n:写入时间大于/小于n天的文件;findbyfiletype-typefiletype:按文件类型搜索;文件类型filetype包括f:普通文件,b:块设备文件,c:字符设备文件,d:目录,l:符号链接文件,s:串行接口等子目录dir00及其子目录在当前目录下查找txt后缀文件;find./-path'*dir00*'-name*.txt公式中的[path...]部分表示该目录为要查找的根目录;find命令格式:find[-path...]-options[-print-exec-ok]-path:要查找目录的路径~:表示$HOME目录;.:表示当前目录;/:表示根目录;-print:表示将结果输出到标准输出;-exec:在匹配的文件上执行该参数给出的shell命令。形式为命令{};请注意{}和\;之间有一个空格;-ok:与-exec功能相同,不同的是在执行命令前,会给出提示,让用户确认是否执行;常用选项如下选项:-name:按名称搜索;-perm:搜索安装权限;-prune:搜索不在当前指定的目录;-user:按文件所有者搜索;-group:按组搜索;-nogroup:搜索没有有效组的文件;-nouser:查找没有有效所有者的文件;-type:按文件类型搜索;文件的三个时间属性,Accesstime:atime,在读取或执行文件时发生变化,即最后一次访问(只访问,不修改)文件的时间;修改时间:mtime,随着文件写入时文件内容的变化而变化,即文件最后一次修改的时间。Createtime:ctime,是写文件时,改变属主,权限或链接设置随着inode的内容改变,也就是文件属性最后一次改变的时间。inode:即索引节点,用于存放文件和目录的基本信息,包括时间信息、文件名、所有者和所属组等。可以使用df-i查看每个分区的inode数量;获取文件atime、mtime、ctime的方法:stat命令linuxfind命令详细搜索文件:find./-typef搜索目录:find./-typed查找名为test的文件或目录:find./-nametest查找名称与正则表达式匹配的文件,注意前面的'.*'(找到的文件有目录)find./-regex.*so.*\.gz查找目录并列出其中的文件目录(对找到的每个目录分别执行ls命令,没有选项-print是文件列表前一行,不会显示目录名)find./-typed-print-execls{}\;找到目录,列出目录下的文件(找到的每个目录分别执行ls命令,执行命令前需要确认)find./-typed-print-okls{}\;找到目录并并列执行目录下的文件(将找到的目录加入ls命令执行一次,如果参数太长会执行多次)find./-typed-execls{}+查找名称匹配*.c的文件:find./-name\*.c打印测试文件名后,打印测试文件内容find./-nametest-print-execcat{}\;不打印测试文件名,只打印测试文件内容find./-nametest-execcat{}\;查找文件更新日期在当前时刻两天内的文件:find./-mtime-2查找文件更新日期距当前时刻超过两天的文件:find./-mtime+2查找文件更新日期距当前时间一天或两天以内的文件:find./-mtime2查找文件其文件更新日期距当前时间两分钟以内的文件:find./-mmin-2查找文件更新日期和时间距当前时间两分钟以上的文件:find./-mmin+2查找其更新时间的文件date距离当前时间一两分钟以内:find./-mmin2查找更新时间大于文件abc内容更新时间的文件新建文件:find./-newerabc查找访问时间较新的文件比文件abc的内容更新时间:find./-anewerabc查找空文件或目录:find./-empty清空文件并删除它们:find./-empty-typef-print-delete查找权限为644的文件或目录(需要完全符合)find./-perm644查找用户/组的读写权限,以及其他用户读权限(不限制其他权限)文件或目录find./-perm-644查找用户有写权限或组用户有写权限的文件或目录find./-perm/220find./-perm/u+w,g+wfind./-perm/u=w,g=w查找属主权限具有读权限的目录或文件find./-perm-u=r查找用户组权限具有读权限的目录或文件find./-perm-g=r查找其他用户具有读取权限的目录或文件find./-perm-o=r查找所有者为lzj的文件或目录find./-userlzj查找组名为的文件或目录gnamefind./-groupgname查找用户ID不存在的文件find./-nouser查找组ID不存在的文件find./-nogroup查找具有执行权限但没有读取权限的文件find./-executable\!-可读查找文件大小小于10字节的文件或目录find./-size-10c查找文件大小等于10字节的文件或目录find./-size10c查找文件大小大于10的文件或目录bytesfind./-size+10c查找文件大小小于10k的文件或目录find./-size-10k查找文件大小小于10M的文件或目录find./-size-10M查找文件大小小于10k的文件或目录大小小于10G找。/-尺寸-10G