这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » Linux环境下文件查找之----find

共2条 1/1 1 跳转至

Linux环境下文件查找之----find

高工
2018-08-03 08:00:46     打赏

find 命令格式:

find PATH–OPTIONS [-print –exec –ok …]

 

说明:

       PATH:要查找的目录路径,如“.” 表示当前目录,“/” 表示系统根目录。不指定路径时默认为当前路径。

       OPTIONS:查找所用到的相应辅助参数,如 –name、-user、-mtime、-type等。

       printf:将匹配的内容输出到标准输出终端。

       exec:对匹配的文件执行该参数后面所给出的shell命令,命令形式如下:

              ‘command’ {} \;。注意空格。

       ok:和exec的作用相同,只不过是一种更为安全的模式来执行譔参数所给出的shell命令,即在执行每一个命令之前都会给出提示,让用户来确定是否确定执行,这样可以避免错误操作带来的麻烦。

 

一、Options常用参数说明及示例:

       -name:按照文件名查找文件。

              例:find . –name file.txt      查找当前目录下名为file.txt的文件。

 

       -perm:按照文件权限来查找文件。

              例:find . –type f –perm 777 –print  查找当前目录下权限为777的文件并显示到标准输出。

 

       -user:按照文件属主来查找文件。

              例:find . –type d –user root –print    查找当前目录下属主为root的目录文件。

 

       -group:按照文件所属的组来查找文件。

       -mtime–n / +n:按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。

              例:find . –type l –mtime +5      查找当前目录下更改时间距现在为5天的符号链接文件。


       -aminn:查找系统中最后n分钟访问的文件。

       -cminn:查找系统中最后n分钟被改变状态的文件。

       -ctimen:查找系统中最后n*24小时内被改变文件状态的文件。

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

       -nogroup:查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

       -nouser:查找无有效属主的文件,即该文件的属主/etc/passwd中不存在。

 

       -newer:file1 ! file2,查找更改时间比文件file1新但比file2旧的文件。

              例:find . –newer file1.txt ! –newerfile2.txt             查找当前目录下比file1.txt新但比file2.txt旧的文件。

 

       -type:查找某一类型的文件,其后跟文件类型,常见文件类型如下:

                     b:块设备文件。

                     d:目录。

                     c:字符设备文件。

                     p:管道文件。

                     l:符号链接文件。

                     f:普通文件。

       -sizen[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节为单位计算。

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

       -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,譔配置文件中包含了本系统中有前文件系统的信息。

       -follow:如果find命令遇到符号链接文件则跟踪至链接所指向的文件。

 

二、使用exec或ok来执行shell命令:

使用find时,可以用exec来执行相应命令配合find查找。建议要执行相应命令之前先用ls命令看一下,确认是否是存在相应的文件。

 

1、Exec或ok命令格式:

       Find…… -exec cmd {} \;

       Find…… -ok cmd {} \;

  注意:

       1、号部分即为上文中提到的一些参数,根据实际查找情况使用相应参数即可。

       2、cmd:查找到相应内容后要执行的shell命令。

       3、cmd后面的一对号中间无空格,反斜杠“\”与分号“;”之间无空格, 一对花括号与“\;”之间至少要有一个空格。

       4、在用find命令来执行shell命令中的rm、mv等删除或更改文件时,应该先查看目标文件,并注意使用安全模式,即使用-ok代替使用-exec,这样它将在操作查找到的目标文件之前总会提示你,由你来决定譔操作是否真的要执行。

 

2、使用示例:

       findxxx/ -type f -size +10240c –exec ls –l {} \;

              查找xxx目录下大小为10k的普通文件并列出其详细信息。

       findxxx/ -type d –ok rm –r {} \;

              查找xxx目录下的目录文件并删除xxx目录下的所有目录。




管理员
2018-08-03 08:10:52     打赏
2楼

谢谢楼主分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]