Linux文件查找命令findWord格式.docx

上传人:b****3 文档编号:15807236 上传时间:2022-11-16 格式:DOCX 页数:14 大小:22.85KB
下载 相关 举报
Linux文件查找命令findWord格式.docx_第1页
第1页 / 共14页
Linux文件查找命令findWord格式.docx_第2页
第2页 / 共14页
Linux文件查找命令findWord格式.docx_第3页
第3页 / 共14页
Linux文件查找命令findWord格式.docx_第4页
第4页 / 共14页
Linux文件查找命令findWord格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Linux文件查找命令findWord格式.docx

《Linux文件查找命令findWord格式.docx》由会员分享,可在线阅读,更多相关《Linux文件查找命令findWord格式.docx(14页珍藏版)》请在冰豆网上搜索。

Linux文件查找命令findWord格式.docx

3、find命令选项;

4、使用exec或ok来执行shell命令;

二、find命令的例子;

1、查找当前用户主目录下的所有文件;

2、为了在当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;

3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;

5、为了查找系统中所有属于root组的文件;

6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件

7、为了查找当前文件系统中的所有目录并排序;

8、为了查找系统中所有的rmt磁带设备;

三、xargs

四、find命令的参数;

1、使用name选项

2、用perm选项

3、忽略某个目录

4、使用find查找文件的时候怎么避开某个文件目录

5、使用user和nouser选项

6、使用group和nogroup选项

7、按照更改时间或访问时间等查找文件

8、查找比某个文件新或旧的文件

9、使用type选项

10、使用size选项

11、使用depth选项

12、使用mount选项

五、关于本文

六、相关文档

+++++++++++++++++++++++++++++++++++++++++++++++++

正文

本文是zhyfly兄贴在LinuxSir.Org的一个帖子而整理出来的,如果您对版权有疑问,请在本帖后面跟帖。

谢谢;

本文的HTML版本由北南南北整理;

修改了整篇文档的全角及说明文字中的单词中每个字母空格的问题;

为标题加了编号,方便大家阅读;

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

findpathname-options[-print-exec-ok...]

pathname:

find命令所查找的目录路径。

例如用.来表示当前目录,用/来表示系统根目录。

-print:

find命令将匹配的文件输出到标准输出。

-exec:

find命令对匹配的文件执行该参数所给出的shell命令。

相应命令的形式为'

command'

{}\;

,注意{}和\;

之间的空格。

-ok:

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

3、find命令选项

-name

按照文件名查找文件。

-perm

按照文件权限来查找文件。

-prune

使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user

按照文件属主来查找文件。

-group

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

-mtime-n+n

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

find命令还有-atime和-ctime选项,但它们都和-mtime选项。

-nogroup

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

-nouser

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

-newerfile1!

file2

查找更改时间比文件file1新但比文件file2旧的文件。

-type

查找某一类型的文件,诸如:

b-块设备文件。

d-目录。

c-字符设备文件。

p-管道文件。

l-符号链接文件。

f-普通文件。

-sizen:

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

-depth:

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

-fstype:

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

-mount:

在查找文件时不跨越文件系统mount点。

-follow:

如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio:

对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

-aminn

  查找系统中最后N分钟访问的文件

  -atimen

  查找系统中最后n*24小时访问的文件

  -cminn

  查找系统中最后N分钟被改变文件状态的文件

  -ctimen

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

 -mminn

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

  -mtimen

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

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

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

在有些操作系统中只允许-exec选项执行诸如ls或ls-l这样的命令。

大多数用户使用这一选项是为了查找旧文件并删除它们。

建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。

为了使用exec选项,必须要同时使用print选项。

如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:

为了用ls-l命令列出所匹配到的文件,可以把ls-l命令放在find命令的-exec选项中

#find.-typef-execls-l{}\;

-rw-r--r--1rootroot349282003-02-25./conf/httpd.conf

-rw-r--r--1rootroot129592003-02-25./conf/magic

-rw-r--r--1rootroot1802003-02-25./conf.d/README

上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls-l命令将它们列出。

在/logs目录中查找更改时间在5日以前的文件并删除它们:

$findlogs-typef-mtime+5-execrm{}\;

记住:

在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!

当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。

它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中,find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

$find.-name"

*.conf"

-mtime+5-okrm{}\;

<

rm..../conf/httpd.conf>

?

n

按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。

find命令首先匹配所有文件名为“passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。

#find/etc-name"

passwd*"

-execgrep"

sam"

sam:

x:

501:

:

/usr/sam:

/bin/bash

1、查找当前用户主目录下的所有文件:

下面两种方法都可以使用

$find$HOME-print

$find~-print

2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;

$find.-typef-perm644-execls-l{}\;

$find/-typef-size0-execls-l{}\;

$find/var/logs-typef-mtime+7-okrm{}\;

$find.-grouproot-execls-l{}\;

-rw-r--r--1rootroot59510月3101:

09./fie1

6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。

该命令只检查三位数字,所以相应文件的后缀不要超过999。

先建几个admin.log*的文件,才能使用下面这个命令

admin.log[0-9][0-9][0-9]"

-atime-7-ok

rm{}\;

rm..../admin.log001>

rm..../admin.log002>

rm..../admin.log042>

rm..../admin.log942>

$find.-typed|sort

$find/dev/rmt-print

xargs-buildandexecutecommandlinesfromstandardinput

在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec执行。

但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。

错误信息通常是“参数列太长”或“参数列溢出”。

这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。

这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

在有些系统中,使用-exec选

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1