linux中查找命令大全,linux-find搜索指令详解

Find 命令参数项详解

Linux  下find命令在目录结构中搜索文件,并执行指定的操作,它具有许多强大的功能,在运行一个非常耗资源的find命令时通常将它放在后台运行,因为遍历一个很大的文件会很耗费时间

一.命令格式:

find pathname  -options[-print -exec  -ok]

二.命令功能

用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

三.命令参数

Pathname:find命令所查找的目录路径,例如.表示当前路径/表示系统根目录

-print:find 命令将匹配的文件输出到标准输出上

-exec:find 命令对匹配的文件执行该参数所给出的shell命令,相应的命令为’commond’

{ },\

-ok: 和-exec作用相同,只不过以一种更为安全的模式来执行参数所给出的shell指令,在执行每一条指令之前,都会提示来让用户确定是否执行.

-type:查找某一类型的文件

b-块设备文件

d-目录

C-字符设备文件

P -管道文件

L-符号链接文件

F-普通文件

-size n :[c]查找文件长度为n块的文件,带有c时表示文件长度按字节计算

-depth:在查找文件时首先查找当前目录中的文件,然后在子目录中查找

-fstype:查找位于某一类型系统中的文件,这些文件系统类型可以在配置文件/etc/fstabe/该文件

1.使用name选项

文件名选项是find命令中最常用的选项,可以单独使用该选项也可以和其他选项一起使用,可以使用某种文件名来匹配文件,但是一定要用引号将文件名模式引起来。不管当前路径是什么,如果要在自己的根目录$HOME中查找文件名符合的文件,则需要使用~作为“pathname”参数,波浪号代表了你的$HOME目录。

find ~ -name "*.log" -print

(1)想要在当前目录及子目录中查找所有的‘*log’文件,可以用:

find  -name "*.log" -print

(2)想要在当前目录及其子目录中查找以一个大小写字母开头的文件,可以用:

find .-name”[A-Z]*”-print

(3)想要在/etc目录中查找文件名以host开头的文件,可以用:

find/etc-name”host*”-print

(4)想要查找$HOME目录中的文件,可以用:

find/-name “*”-print

(5)想要系统高负荷运行就要从根目录下开始寻找所有文件

find/-name”*”-print

如果想在当前目录中查找以一个小写字母开头,最后是2-3加上.log的文件则可以用一下语句:

find .-name "[a-z]*[2-3].log" -print

e024286be674c208c7285bfa6aa7df99.png

2.用perm选项

按照文件权限模式用-perm选项,按文件权限模式来查找文件最好选用八进制权限表示法。

如果在当前目录下查找文件权限为644的文件,即文件属主可以读写执行,其他用户可以读和执行的文件

还有一种表示方法:在八进制数字前边加一个-,表示都匹配,如-007就想当与777,-005相当于555

bf6386721a2028a579b761a9d88f3ed2.png

3.忽略某个目录

如果在查找文件时希望忽略某个目录,因为你不知道那个目录中有没有你要查找的文件,则可以用-prune选项来指定需要忽略的目录,在使用-prune选项时要当心,因为如果同时使用了-depth选项那么-prune选项就会被find命令忽略,如果希望在test目录下查找文件,但不希望在test/test3目录中查找用

find test-path”test/test3”-prune -o -print

02f11251dbf614387d1be80050ab3911.png

4.使用find查找文件时怎么避开某个文件目录:

例子1:

在 test目录下不在test4子目录之内的所有文件

命令:

find test -path "test/test4" -prune -o -print

注释:

Find [-path][expression]

在路径列表后边的是表达式

-path “test”为真,则求值-prune,-prune返回真;否则不求-prune,与逻辑表达式为假

例子2:查找某一个确定文件,-name等选项加载-o之后

find test  -prune -o -name -print

5使用user和nouser选项

按照文件属主查找文件

例子1:在$HOME目录中查找文件属主为zyp的文件

find ~ -user zyp -print

例子2在/etc目录下查找文件属主为zyp的文件

find /etc -user zyp -print

例子3查找主账户已经被删除的文件,可以使用-nouser选项,在/home下查找所有这类文件

命令:find/home -nouser -print

6.按照更改时间或者访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime ,ctime,atime选项,如果系统突然没有可用空间,很可能某一个文件的长度在此期间增长迅速,这是就可以用mtime选项来查找文件,用-减号来限定更改时间在居今n日以内的文件,用+加号来限定更改时间在距今n日以前的文件

# -atime:按访问时间查找文件,-n指N天以内,+n指N天以前

# -mtime -n +n 按文件更改时间查找文件,-n指N天以内,+n指N天以前

#-ctime 按创建时间来查找文件-n指N天以内,+n指N天以前

de5cc02fd5c836f673b90f3f0ab7abd6.png

ce35b4d1354488476a5f9437b0d36905.png

bf74b83ad4dd2704ae8c29139fa593b1.png

-amin -n:查找系统最后N分钟访问的文件

-atime -n:查找系统最后N*24小时访问的文件

-cmin -n:查找系统最后N分钟被改变文件状态的文件

-ctime -n:查找系统最后N*24小时被改变文件状态的文件

-mmin -n:查找文件系统中最后N分钟被改变文件数据的文件

-mtime -n:查找文件系统中最后N*24小时被改变文件数据的文件

总结:min是分钟,time是小时,a是访问,c是改变状态m是改变数据

7. type选项

例子1在/etc目录下查找所有的目录

命令:find/etc -type d -print

例子2在当前目录下查找除目录以外的所有类型的文件

命令:find !type d -print

例子3在/etc目录下查找所有的符号链接文件

命令:find/etc-type| -print

8. 使用size选项:

可按照文件的长度查找文件,这里所指的文件可以是块(block)来计量,也可以用字节来计量,以字节计量文件长度的表达方式为N c;以块计量文件长度只用数字表示即可

在按照文件长度查找文件时,一般使用以字节表示文件长度,在查看文件系统的大小时这时使用块来计量更容易转化

例子1:在当前目录下查找文件长度大于1M字节的文件

find -size +1000000c -print

839c02cf9fd52b967e20138be3a15603.png

例子2:在当前目录下查找长度超过10块的文件

find -size +10 -print

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值