1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux中find命令详解 Linux下的find指令详解

linux中find命令详解 Linux下的find指令详解

时间:2023-08-20 04:57:19

相关推荐

linux中find命令详解 Linux下的find指令详解

在Linux下有很多查找指令:locate

whereis

which

find

在这些查找指令中功能最强大的当属find指令了。find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。所以在本片博客中主要讨论find命令。

(一)find命令的格式:find 路径 -命令参数 [输出形式];

路径:所要搜索的目录及其所有子目录。默认为当前目录。

命令参数:要查找文件的特征。如果参数为空则返回当前目录及子目录下的所有文件

(二)find命令的常用参数:根据文件名或正则表达式匹配搜索:

使用-name参数指定文件名必须匹配的字符串:(-name之前的.可加可不加)

具有条件限制的查找:

-a 与条件

-o 或条件

-not 非条件(此参数的功能类似于否定参数‘!’)

find-name"t*"-a-name"*.text"//查找以t开头并且以.text结尾的文件

find-name"t*"-o-name"*.text"//查找以t开头或以.text结尾的文件

find-not-name"t*"-o-name"*.text"//查找不以t开头或以.text结尾的文件

-path 这个参数用于将整个路径作为一个整体进行匹配。find/home-path"*.c"

设定find命令在子目录中遍历的深度参数:

-maxdepth

-mindepth

find-maxdepth2-typef//列出两层深度之间的普通文件根据文件类型搜索:

文件类型 类型参数

普通文件 f

符号文件 l

目录 d

字符设备 c

块设备 b

套接字 s

管道文件 p

find-typel//查找此目录及子目录以下的所有符号文件

find-typef//普通文件

字符设备文件,块设备文件,套接字文件,管道文件可以到根目录下查找:(cd /)

根据文件时间进行查找:

linux文件系统中的每个文件都有三种时间戳:

1. 访问时间(atime——access time):就是上次访问这个文件的时间。

2. 改变时间(ctime——change time):就是文件的inode改变的时间(什么是inode?)当你往一个文件中添加数据或者删除数据的时候,修改文件所有者的时候,链接改变的时候,文件的ctime就会发生改变。

3. 修改时间(mtime——modification time):就是文件的内容上一次发生改变的时候的时间。

find-typef-atime-7#查找7天内被访问的文件

find-typef-atime7#查找恰好在7天前被访问的文件

find-typef-atime+7#查找超过7天没被访问的文件

-atime,-ctime,-mtime可作为find的时间参数,单位是天。还有基于“分钟”的,-amin,-mmin

-cmin。这些值通常还带有+或-:+表示大于,-表示小于。

-newer参数,我们可以指定一个用于比较时间戳的参考文件,然后找出比参考文件更新的所有文件。

find-typef-newertest4//查找当前目录及子目录下比test4更新的文件基于文件大小的查找

-size参数

find-typef-size+45//查找文件大小比45大的普通文件

find-typef-size45//查找文件大小为45的普通文件

find-typef-size-45//查找文件大小比45小的普通文件基于文件权限和文件所有人的查找

-perm 按照文件权限查找

-user (或者是-uid n n是用户账号的ID) 按照文件所有人查找

-group (或者是-gid n n是组名的ID)按照文件的所属组查找

find-typef-perm664//查找权限为664的普通文件

find-typef-perm+664//查找权限为大于664的普通文件

find-typef-userlee//查找所有人为lee的普通文件

find-typef-uid2//查找所有人为账号ID为2的普通文件结合find执行命令或动作

-exec find命令最强大的参数之一find-typef-name"*.c"-execcat>file.txt\;#将所有.c文件拼接起来写入单个文件file.txt中

find-typef-mtime+10-name"*.text"-execcp/5_15#将10天前的.text文件复制到/tmp下find与xargs结合使用

xargs参数 将标准输入转换成命令行参数

find-typef-name"*.txt"-print0|xargs-0rm-f#将匹配到的文件删除,xargs-0将\0作为输入定界符。

find-typef-name"*.c"-print0|xargs-0-l#统计所有c程序文件的行数额外可进行的动作参数

-exec参数 参数后面跟的命令就是所要进行的额外动作

例如:find-typef/home-perm-1000-execls-l{}\;//找出文件权限小于1000的普通文件使用ls-l显示出来

-exec与“\;”之间的内容就是要进行的额外内容。

{}就是将find找到的内容放到{}中去。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。