精华内容
下载资源
问答
  • find命令

    千次阅读 2019-03-06 17:10:24
    超详细的find命令用法,帮你解决这些问题。 下面我通过一些例子,来帮大家了解find命令: 为了实验效果更加明显,我先在/mnt下建立了一些文件,并修改了他们的权限及所有人,所在组。 [root@westos mnt]# touch ...

    还在为文件查找,分类管理文件而发愁吗?超详细的find命令用法,帮你解决这些问题。

    下面我通过一些例子,来帮大家了解find命令:

    为了实验效果更加明显,我先在/mnt下建立了一些文件,并修改了他们的权限及所有人,所在组。

    [root@westos mnt]# touch file{1..5}

    [root@westos mnt]# chown gq.westos file1
    [root@westos mnt]# chown root.westos file2
    [root@westos mnt]# chown westos.westos file3

    OK,现在我的文件就建立好了。用一条命令对这些文件的权限进行监控,

    [root@westos mnt]# watch -n 1 ls -lR /mnt/

    /mnt/:
    total 0
    -rw-r--r-- 1 gq     westos 0 Nov 12 06:10 file1
    -rw-r--r-- 1 root   westos 0 Nov 12 06:10 file2
    -rw-r--r-- 1 westos westos 0 Nov 12 06:10 file3
    -rw-r--r-- 1 root   root   0 Nov 12 06:10 file4
    -rw-r--r-- 1 root   root   0 Nov 12 06:10 file5

    现在使用find命令按所有人所在组进行文件的查找(注意 -o 代表或的关系):

    find /mnt -user root           查找/mnt下属于root用户的文件


    find /mnt -group root               查找/mnt下属于root组的文件

    find /mnt -group root -user root   查找/mnt下属于root用户,root组的文件

    find /mnt -not -group root -user root  查找/mnt下属于root用户,但不root组的文件

    find /mnt -not -group root -0 -user root  查找/mnt下属于root用户,或者不属于root组的文件

    现在使用find命令按名称进行文件的查找

    注意:-maxdepth代表最深几层目录 -mindepth 代表最浅几层目录

    find /etc -name passwd  查找/etc 下文件名为passwd 字符的文件


    find  -maxdepth 1 -name passwd      查找当前位置文件名passwd字符且最深一层目录的文件


    find /etc  -maxdepth 2 -name passwd    查找/etc文件名passwd字符且最深两层目录的文件

    find /etc  -maxdepth 1 -name passwd    查找/etc下文件名为passwd字符且最深一层目录的文件


    find /etc  -maxdepth 1 -name *.conf        查找/etc下文件名以.conf字符结尾且最深一层目录的文件

     

    find /etc  -maxdepth 2 -name *.conf        查找/etc下文件名以.conf字符结尾且最深两层目录的文件


    find /etc  -maxdepth 2 -mindepth 2 -name *.conf    查找/etc下文件名以.conf字符结尾且只有两层目录的文件

    现在使用find命令按文件大小进行文件的查找

    为了实验效果,先截取不同大小的数据在/mnt下的文件中。
    [root@westos mnt]# dd if=/dev/zero of=file1 bs=1 count=10240
    10240+0 records in
    10240+0 records out
    10240 bytes (10 kB) copied, 0.00819593 s, 1.2 MB/s
    [root@westos mnt]# dd if=/dev/zero of=file2 bs=1 count=20480
    20480+0 records in
    20480+0 records out
    20480 bytes (20 kB) copied, 0.0150067 s, 1.4 MB/s
    [root@westos mnt]# dd if=/dev/zero of=file3 bs=1 count=40960
    40960+0 records in
    40960+0 records out
    40960 bytes (41 kB) copied, 0.0317411 s, 1.3 MB/s

    查看这些文件大小

    [root@westos mnt]# find /mnt/ -size 20k             查找/mnt 下,文件大小为20k的文件
    /mnt/file2
    [root@westos mnt]# find /mnt/ -size -20k           查找/mnt 下,文件小于20k的文件 
    /mnt/
    /mnt/file1
    /mnt/file4
    /mnt/file5
    [root@westos mnt]# find /mnt/ -size +20k          查找/mnt 下,文件大于为20k的文件
    /mnt/file3

    现在使用find命令按文件类型进行文件的查找

    find /etc/ -type d             查找/etc 小文件类型为目录的文件

    find /etc/ -type f              查找/etc 小文件类型为文件的文件
    find /etc/ -type l              查找/etc 小文件类型为链接的文件
    find /etc/ -type b             查找/etc 小文件类型为块设备的文件
    find /etc/ -type t              查找/etc 小文件类型为字符型设备的文件

    现在使用find命令按文件修改时间进行文件的查找

    [root@westos mnt]# find /mnt/ -ctime -10       查找/mnt 下修改时间是10天之内的文件
    /mnt/
    /mnt/file1
    /mnt/file2
    /mnt/file3
    /mnt/file4
    /mnt/file5
    [root@westos mnt]# find /mnt/ -ctime +10      查找/mnt 下修改时间是10天之前的文件

    [root@westos mnt]# find /mnt/ -cmin -10        查找/mnt 下修改时间是10分钟的文件

    /mnt/
    /mnt/file4
    [root@westos mnt]# find /mnt/ -cmin +10
    /mnt/file1
    /mnt/file2
    /mnt/file3
    /mnt/file5
    [root@westos mnt]# find /mnt/ -cmin 10

    为了实验更加清楚,做了以下操作:

    [root@westos mnt]# find /etc/ -cmin -10
    [root@westos mnt]# vim /etc/passwd
    [root@westos mnt]# find /etc/ -cmin -10
    /etc/
    /etc/passwd

    现在使用find命令按文件权限大小进行文件的查找

    为了实验效果,我先把/mnt 建立的文件的权限做了修改

    [root@westos mnt]# chmod 404 file1
    [root@westos mnt]# chmod 444 file2
    [root@westos mnt]# chmod 644 file3
    [root@westos mnt]# chmod 640 file4
    [root@westos mnt]# ls -lR /mnt/
    /mnt/:
    total 72
    -r-----r-- 1 gq     westos 10240 Nov 12 07:48 file1
    -r--r--r-- 1 root   westos 20480 Nov 12 07:48 file2
    -rw-r--r-- 1 westos westos 40960 Nov 12 07:48 file3
    -rw-r----- 1 root   root       0 Nov 12 14:17 file4
    -rw-r--r-- 1 root   root       0 Nov 12 06:10 file5

    [root@westos mnt]# find /mnt/ -perm 444          查找/mnt 下权限为444的文件
    /mnt/file2
    [root@westos mnt]# find /mnt/ -perm -444         查找/mnt 下所有者权限为含r,所在组权限含r,其他人权限含的文件
    /mnt/
    /mnt/file2
    /mnt/file3
    /mnt/file5
    [root@westos mnt]# find /mnt/ -perm /444          查找/mnt 下 或者所有者权限为含r,或者所在组权限含r,或者其他人权限含的文件
    /mnt/
    /mnt/file1
    /mnt/file2
    /mnt/file3
    /mnt/file5
    /mnt/file4

    为了更好的解释/777 的含义,进行如下操作

    [root@westos mnt]# chmod 000 file5

    [root@westos mnt]# chmod o+x file5

    [root@westos mnt]# find /mnt/ -perm /777   

    查找/mnt 下 或者所有者权限为含r或者含w,或者含x,或者所在组权限含r或者含w,或者含x,或者其他人权限含r或者含w,或者含x的文件
    /mnt/
    /mnt/file1
    /mnt/file2
    /mnt/file3
    /mnt/file4
    [root@westos mnt]# chmod o+x file5
    [root@westos mnt]# find /mnt/ -perm /777
    /mnt/
    /mnt/file1
    /mnt/file2
    /mnt/file3
    /mnt/file5
    /mnt/file4

    [root@westos mnt]# find /mnt -perm -004  查找/mnt 下其他人含有r 权限的文件,而对所有人,所在组无要求的文件
    /mnt
    /mnt/file1
    /mnt/file2
    /mnt/file3
    /mnt/file5

    现在我们学会了使用find命令来满足不同的文件查找需求,那找出文件后,如何对这些文件进行处理呢?别着急,现在就带大家来学习。

    对find命令查出的文件进行处理

    [root@westos ~]find /mnt/ -perm -004 -exec chmod o-r {} \;

    查找/mnt 下其他人含有r 权限的文件,而对所有人,所在组无要求的文件将这些文件其他人的r权限去掉。

    执行前

    执行后

    [root@westos ~]find /etc/ -name *.conf -exec cp -rp {} /mnt \;

    查找/etc 下文件名含有conf 的文件,并把文件连同文件的权限一同备份到/mnt

    [root@westos ~]# find /mnt/ -name *.conf -exec rm -fr {} \;    查找/mnt 下文件名含有conf 的文件,并把文件删除

     

     

     

     

    展开全文
  • 仿照unix操作系统中的find命令,在实现一个myfind命令。myfind命令从指定的目录下开始,递归地查找指定文件
  • find命令详解

    万次阅读 2018-05-03 13:08:17
    如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 语法 ·find path -option [ -print ] [ -exec -ok command ] {} \  find ...

    前提

        Linux秉承着“一切皆文件”的哲学思想,当然这也是对linux文件系统的一种抽象说法,从设备驱动程序、目录、系统配置、内核参数到任务进程都是用文件来表示的。其中的任何事物,无论是纯文本文件(例如/etc/hosts)、块设备或字符设备驱动程序或者内核状态与配置(例如/proc/cpuinfo),他们都用文件的形式表示。 一切皆文件,这意味着从系统的一部分学到的原理可以适用于系统的其他部分。

       所以怎么查找文件就显得非常重要了,今天我们就来详细的学习一下find命令的用法。

          find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    语法

    ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \

      find      (指定目录)     (指定选项)                                 [查找玩之后执行的动作 ]

    常用选项

    -amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;

    -anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;

    -atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;

    -cmin<分钟>:查找在指定时间之时被更改过的文件或目录;

    -cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;

    -ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;

    -daystart:从本日开始计算时间;

    -depth:从指定目录下最深层的子目录开始查找;

    -expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;

    -exec<执行指令>:假设find指令的回传值为True,就执行该指令;

    -false:将find指令的回传值皆设为False;

    -fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;

    -follow:排除符号连接;

    -fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;

    -fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;

    -fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;

    -fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;

    -gid<群组识别码>:查找符合指定之群组识别码的文件或目录;

    -group<群组名称>:查找符合指定之群组名称的文件或目录;

    -help或——help:在线帮助;

    -ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;

    -iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;

    -inum<inode编号>:查找符合指定的inode编号的文件或目录;

    -ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;

    -iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;

    -links<连接数目>:查找符合指定的硬连接数目的文件或目录;

    -iname<范本样式>:指定字符串作为寻找符号连接的范本样式;

    -ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;

    -maxdepth<目录层级>:设置最大目录层级;

    -mindepth<目录层级>:设置最小目录层级;

    -mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;

    -mount:此参数的效果和指定“-xdev”相同;

    -mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;

    -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;

    -newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;

    -nogroup:找出不属于本地主机群组识别码的文件或目录;

    -noleaf:不去考虑目录至少需拥有两个硬连接存在;

    -nouser:找出不属于本地主机用户识别码的文件或目录;

    -ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;

    -path<范本样式>:指定字符串作为寻找目录的范本样式;

    -perm<权限数值>:查找符合指定的权限数值的文件或目录;

    -print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;

    -print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;

    -printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;

    -prune:不寻找字符串作为寻找文件或目录的范本样式;

    -regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;

    -size<文件大小>:查找符合指定的文件大小的文件;

    -true:将find指令的回传值皆设为True;

    -typ<文件类型>:只寻找符合指定的文件类型的文件;

    -uid<用户识别码>:查找符合指定的用户识别码的文件或目录;

    -used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;

    -user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;

    -version或——version:显示版本信息;

    -xdev:将范围局限在先行的文件系统中;

    -xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。

    常用示例

    find

    列出当前目录及子目录下所有文件和文件夹


    • 按照文件名查找:

    find /home  -name "*.t?t"   *表示通配任意个字符  表示通配单个字符

    列出/home 目录下的以 .t t结尾的文件,两个t中间为一个字符。


    • 按照文件时间戳查找:

    首先我们先简要了解一下文件的时间戳的概念,可以用stat或者ls 命令查看文件的三个时间戳。

    访问时间Accessatime
    修改时间Modifymtime
    状态改动时间Changectime


    下面是man手册中给予的(+ - n)的解释:


    我撷取了鸟哥linux私房菜中对正负号的解释:

    图中最右边为目前的时间,越往左边则代表越早之前的时间轴啦。由图我们可以清楚的知道:

    • +4代表大于等于5天前的档名:ex> find /var -mtime +4
    • -4代表小于等于4天内的档案档名:ex> find /var -mtime -4
    • 4则是代表4-5那一天的档案档名:ex> find /var -mtime 4

    find   /usr   -mtime  -4   查找文件更新日时在距现在时刻4天以内的文件

    find   /usr  -mtime  +4    查找文件更新日时在距现在时刻5天以上的文件

    find   /usr   -mtime   4   查找文件更新日时在距现在时刻4天以上5天以内的文件


    通过wc -l统计行数可以看出内容修改过的文件数符合正常的文件修改的规律。

    • 按照文件所有者和群组来查找:

    find  / -user mhy 


    注意:find / -nouser  -a -nogroup  可以找出系统中不属于任何人和任何群组的文件,对于这些文件我们需要保持警惕。

    这里我们可以引申 -a -o -not的用法:

    -o 是或者的意思  

    -a 是而且的意思  

    -not 是相反的意思  

    通过这三个我们可以自由组合各种筛选选项或者规则。比如:列出/var目录下属于某个用户的文件并且文件名包含a的文件。



    • 按照文件类型来查找文件:

    find / -type p

    列出所有的管道类型文件


    • 按照文件大小来查找文件:

     find  / -size  +10M

    列出/usr中大于10M的文件


    • 按照文件权限来查找文件:

    find /var -perm 777

    列出/var目录下文件权限为777的文件


    引申内容:

    find查找后执行的命令

    -print: find命令将匹配的文件输出到标准输出。
    -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {}  \;,注意{ }和\;之间的空格。

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

    注意一点:{}中的内容并非一次引用所有的搜索出的内容,而是一行一行引用。我也是在-exec tar -zcvf some.tar.gz {}  \;时发现的。

    举两个例子:

    查找一下/var/log目录下内容更改时间40天前并且大于100K的文件,并列出他们的路径。

     find /var/log   -mtime +40 -a -size +100k -exec ls -lh {} \;


    查找一下/var/log目录下内容更改时间30天前并且不属于root群组的文件,并提示是否删除他们。

    find /var/log -type f -a  -mtime  +30 -not -group root -ok rm -rf {} \;



    好了,今天就写到这里了,本人不才,如有错误请读者指出,十分感谢!


    展开全文
  • find命令查找包含指定内容的文件

    千次阅读 2020-12-04 11:03:50
    find / | xargs grep function 查找系统根目录下面的所有...为什么会这样能,因为通道命令符是把上一部的结果传递给下一步来处理,在 find . |grep x中虽然看似和find .|xargs grep x差不多,但是实际上还是有区别的...

    find / | xargs grep function 查找系统根目录下面的所有文件的内容中包含有function字符串的文件列表。

    find .|xargs grep x
    find . -exec grep x{} \;

    find / -name "httpd.conf"

    find / -name "rsync"

    为什么会这样能,因为通道命令符是把上一部的结果传递给下一步来处理,在 find . |grep x中虽然看似和find .|xargs grep x差不多,但是实际上还是有区别的。应为find .得到的结果是一串文件名集合,如果直接传递给grep的话,grep会把这些文件名看作一些无意义的字符串来处理。但是传递给xargs,他会把他当作一个有意义的文件来处理。

    Linux find命令详解

    由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

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

    一、find 命令格式

    1、find命令的一般形式为;

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

    2、find命令的参数;

    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 选项,但它们都和-m time选项。
    -nogroup
    查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
    -nouser
    查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
    -newer file1 ! file2
    查找更改时间比文件file1新但比文件file2旧的文件。
    -type
    查找某一类型的文件,诸如:
    b - 块设备文件。
    d - 目录。
    c - 字符设备文件。
    p - 管道文件。
    l - 符号链接文件。
    f - 普通文件。
    -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
    -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
    -mount:在查找文件时不跨越文件系统mount点。
    -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
    -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

    另外,下面三个的区别:

        -amin n
      查找系统中最后N分钟访问的文件
      -atime n
      查找系统中最后n*24小时访问的文件
      -cmin n
      查找系统中最后N分钟被改变文件状态的文件
      -ctime n
      查找系统中最后n*24小时被改变文件状态的文件
         -mmin n
      查找系统中最后N分钟被改变文件数据的文件
      -mtime n
      查找系统中最后n*24小时被改变文件数据的文件

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

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

    在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

    exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

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

    # find . -type f -exec ls -l { } \;
    -rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
    -rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
    -rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README

    上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
    在/logs目录中查找更改时间在5日以前的文件并删除它们:

    $ find logs -type f -mtime +5 -exec rm { } \;

    记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。

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

    $ find . -name "*.conf" -mtime +5 -ok rm { } \;
    < rm ... ./conf/httpd.conf > ? n

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

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

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

    # find /etc -name "passwd*" -exec grep "sam" { } \;
    sam:x:501:501::/usr/sam:/bin/bash

    二、find命令的例子;

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

    下面两种方法都可以使用

    $ find $HOME -print
    $ find ~ -print



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

    $ find . -type f -perm 644 -exec ls -l { } \;

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

    $ find / -type f -size 0 -exec ls -l { } \;

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

    $ find /var/logs -type f -mtime +7 -ok rm { } \;

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

    $find . -group root -exec ls -l { } \;
    -rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1

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

    该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令

    $ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
    rm { } \;
    < rm ... ./admin.log001 > ? n
    < rm ... ./admin.log002 > ? n
    < rm ... ./admin.log042 > ? n
    < rm ... ./admin.log942 > ? n

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

    $ find . -type d | sort

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

    $ find /dev/rmt -print

    三、xargs

    xargs - build and execute command lines from standard input

    在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

    find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

    在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;

    而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

    来看看xargs命令是如何同find命令一起使用的,并给出一些例子。

    下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

    #find . -type f -print | xargs file
    ./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
    ./.kde/Autostart/.directory: ISO-8859 text\
    ......

    在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

    $ find / -name "core" -print | xargs echo "" >/tmp/core.log

    上面这个执行太慢,我改成在当前目录下查找

    #find . -name "file*" -print | xargs echo "" > /temp/core.log
    # cat /temp/core.log
    ./file6

    在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

    # ls -l
    drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6
    -rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf
    -rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf
    # find . -perm -7 -print | xargs chmod o-w
    # ls -l
    drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf

    用grep命令在所有的普通文件中搜索hostname这个词:

    # find . -type f -print | xargs grep "hostname"
    ./httpd1.conf:# different IP addresses or hostnames and have them handled by the
    ./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
    on your

    用grep命令在当前目录下的所有普通文件中搜索hostnames这个词:

    # find . -name \* -type f -print | xargs grep "hostnames"
    ./httpd1.conf:# different IP addresses or hostnames and have them handled by the
    ./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
    on your

    注意,在上面的例子中, \用来取消find命令中的*在shell中的特殊含义。

    find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。

    四、find 命令的参数

    下面是find一些常用参数的例子,有用到的时候查查就行了,像上面前几个贴子,都用到了其中的的一些参数,也可以用man或查看论坛里其它贴子有find的命令手册

    1、使用name选项

    文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。

    可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。

    不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.txt的文件,使用~作为 'pathname'参数,波浪号~代表了你的$HOME目录。

    $ find ~ -name "*.txt" -print

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

    $ find . -name "*.txt" -print

    想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:

    $ find . -name "[A-Z]*" -print

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

    $ find /etc -name "host*" -print

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

    $ find ~ -name "*" -print 或find . -print

    要想让系统高负荷运行,就从根目录开始查找所有的文件。

    $ find / -name "*" -print

    如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件,下面的命令就能够返回名为ax37.txt的文件:

    $find . -name "[a-z][a-z][0--9][0--9].txt" -print

    2、用perm选项

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

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

    $ find . -perm 755 -print

    还有一种表达方法:在八进制数字前面要加一个横杠-,表示都匹配,如-007就相当于777,-006相当于666

    # ls -l
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
    -rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
    drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
    -rw-rw-rw- 1 root root 2792 10月 31 20:19 temp
    # find . -perm 006
    # find . -perm -006
    ./sam
    ./httpd1.conf
    ./temp

    -perm mode:文件许可正好符合mode

    -perm +mode:文件许可部分符合mode

    -perm -mode: 文件许可完全符合mode

    3、忽略某个目录

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

    如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:

    $ find /apps -path "/apps/bin" -prune -o -print


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

    比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件

    find /usr/sam -path "/usr/sam/dir1" -prune -o -print

    find [-path ..] [expression] 在路径列表的后面的是表达式

    -path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
    -print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。

    这个表达式组合特例可以用伪码写为

    if -path "/usr/sam" then
               -prune
    else
               -print

    避开多个文件夹

    find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print

    圆括号表示表达式的结合。

    \ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。

    查找某一确定文件,-name等选项加在-o 之后

    #find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print


    5、使用user和nouser选项

    按文件属主查找文件,如在$HOME目录中查找文件属主为sam的文件,可以用:

    $ find ~ -user sam -print

    在/etc目录下查找文件属主为uucp的文件:

    $ find /etc -user uucp -print

    为了查找属主帐户已经被删除的文件,可以使用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名; find命令能够为你完成相应的工作。

    例如,希望在/home目录下查找所有的这类文件,可以用:

    $ find /home -nouser -print


    6、使用group和nogroup选项

    就像user和nouser选项一样,针对文件所属于的用户组, find命令也具有同样的选项,为了在/apps目录下查找属于gem用户组的文件,可以用:

    $ find /apps -group gem -print

    要查找没有有效所属用户组的所有文件,可以使用nogroup选项。下面的find命令从文件系统的根目录处查找这样的文件

    $ find / -nogroup-print


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

    如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。

    用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。

    希望在系统根目录下查找更改时间在5日以内的文件,可以用:

    $ find / -mtime -5 -print

    为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:

    $ find /var/adm -mtime +3 -print

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

    如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项。它的一般形式为:

    newest_file_name ! oldest_file_name

    其中,!是逻辑非符号。

    查找更改时间比文件sam新但比文件temp旧的文件:

    例:有两个文件

    -rw-r--r-- 1 sam adm 0 10月 31 01:07 fiel
    -rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
    drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
    -rw-rw-rw- 1 root root 2792 10月 31 20:19 temp
    # find -newer httpd1.conf ! -newer temp -ls
    1077669 0 -rwxrwxr-x 2 sam adm 0 10月 31 01:01 ./httpd.conf
    1077671 4 -rw-rw-rw- 1 root root 2792 10月 31 20:19 ./temp
    1077673 0 -rw-r--r-- 1 sam adm 0 10月 31 01:07 ./fiel

    查找更改时间在比temp文件新的文件:

    $ find . -newer temp -print



    9、使用type选项

    在/etc目录下查找所有的目录,可以用:

    $ find /etc -type d -print

    在当前目录下查找除目录以外的所有类型的文件,可以用:

    $ find . ! -type d -print

    在/etc目录下查找所有的符号链接文件,可以用

    $ find /etc -type l -print


    10、使用size选项

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

    在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。
    在当前目录下查找文件长度大于1 M字节的文件:

    $ find . -size +1000000c -print

    在/home/apache目录下查找文件长度恰好为100字节的文件:

    $ find /home/apache -size 100c -print

    在当前目录下查找长度超过10块的文件(一块等于512字节):

    $ find . -size +10 -print

    11、使用depth选项

    在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。

    在下面的例子中, find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

    它将首先匹配所有的文件然后再进入子目录中查找。

    $ find / -name "CON.FILE" -depth -print


    12、使用mount选项

    在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

    从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:

    $ find . -name "*.XC" -mount -print

    扫描下方公众号二维码,或者关注公众号: 猿有一技,回复关键字:linux, 即可免费无套路获取学习资料。
    在这里插入图片描述

     

    展开全文
  • find命令非常强大,可以起到非常强大的过滤功能,对各种设备文件的属性过滤
  • linux下find命令查找排除命令(简单明了),精心整理,实践测试
  • find 命令查找匹配文件详解

    千次阅读 2020-05-29 14:54:26
    pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 -print: find命令将匹配的文件输出到标准输出。 -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为...


    1. 语法格式

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

    2. 参数

    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 选项,但它们都和-m time选项。
    -nogroup
    查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
    -nouser
    查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
    -newer file1 ! file2
    查找更改时间比文件file1新但比文件file2旧的文件。
    -type
    查找某一类型的文件,诸如:
    b - 块设备文件。
    d - 目录。
    c - 字符设备文件。
    p - 管道文件。
    l - 符号链接文件。
    f - 普通文件。
    -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
    -mount:在查找文件时不跨越文件系统mount点。
    -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
    -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
    另外,下面三个的区别:
    -amin n
    查找系统中最后N分钟访问的文件
    -atime n
    查找系统中最后n*24小时访问的文件
    -cmin n
    查找系统中最后N分钟被改变文件状态的文件
    -ctime n
    查找系统中最后n*24小时被改变文件状态的文件
    -mmin n
    查找系统中最后N分钟被改变文件数据的文件
    -mtime n
    查找系统中最后n*24小时被改变文件数据的文件
    

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

    rm命令删除文件之前,先用ls命令看一下,确认它们是所要删除的文件。

    $ find . -type f -exec ls -l { } ;
    -rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
    -rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
    -rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
    

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

    $ find logs -type f -mtime +5 -exec rm { } ;
    

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

    $ find . -name "*.conf" -mtime +5 -ok rm { } ;
    < rm ... ./conf/httpd.conf > ? n
    按y键删除文件,按n键不删除。
    

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

    $ find /etc -name "passwd*" -exec grep "sam" { } ;
    sam:x:501:501::/usr/sam:/bin/bash
    

    4.1 练习

    1、查找当前用户主目录下的所有文件:
    下面两种方法都可以使用

    $ find $HOME -print
    $ find ~ -print
    

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

    $ find . -type f -perm 644 -exec ls -l { } ;
    

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

    $ find / -type f -size 0 -exec ls -l { } ;
    

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

    $ find /var/logs -type f -mtime +7 -ok rm { } ;
    

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

    $find . -group root -exec ls -l { } ;
    -rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1
    

    6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。
    该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令

    $ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
    rm { } ;
    < rm ... ./admin.log001 > ? n
    < rm ... ./admin.log002 > ? n
    < rm ... ./admin.log042 > ? n
    < rm ... ./admin.log942 > ? n
    

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

    $ find . -type d | sort
    

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

    $ find /dev/rmt -print
    

    5. xargs

    xargs - build and execute command lines from standard input
    

    在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
    find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
    在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;
    而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。
    来看看xargs命令是如何同find命令一起使用的,并给出一些例子。
    下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

    $ find . -type f -print | xargs file
    ./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
    ./.kde/Autostart/.directory: ISO-8859 text
    ......
    

    在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

    $ find / -name "core" -print | xargs echo "" >/tmp/core.log
    

    上面这个执行太慢,我改成在当前目录下查找

    $ find . -name "file*" -print | xargs echo "" > /temp/core.log
    $ cat /temp/core.log
    ./file6
    

    在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

    $ ls -l
    drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6
    -rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf
    -rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf
    $ find . -perm -7 -print | xargs chmod o-w
    $ ls -l
    drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
    -rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
    

    用grep命令在所有的普通文件中搜索hostname这个词:

    $  find . -type f -print | xargs grep "hostname"
    ./httpd1.conf:# different IP addresses or hostnames and have them handled by the
    ./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
    on your
    

    用grep命令在当前目录下的所有普通文件中搜索hostnames这个词:

    $ find . -name * -type f -print | xargs grep "hostnames"
    ./httpd1.conf:# different IP addresses or hostnames and have them handled by the
    ./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
    on your
    

    注意,在上面的例子中, 用来取消find命令中的*在shell中的特殊含义。

    6. find常用

    分别使用xargs和exec实现这样的需求,把当前目录下所有后缀名为.txt的文件的权限修改为777
    答:
    (1)find ./ -type f -name “.txt" |xargs chmod 777
    (2)find ./ -type f -name "
    .txt” -exec chmod 777 {} ;

    展开全文
  • find命令和xargs命令

    千次阅读 2018-06-01 10:36:07
    能很好的用好find将是Linux工作的一大幸事,不要奢望一口气记住本文所有的方法,要慢慢的去尝试和领会这些用法的精妙和合理之处,到了一定时候自然会记住很多,能够举一反三将是最大的收获!
  • Linux find命令详解

    千次阅读 2021-01-27 16:34:55
    文章目录一、find基本介绍与命令格式二、find命令参数三、操作符四、输出处理形式五、实例 一、find基本介绍与命令格式 1.find命令基本介绍     find顾名思义就是查找,find命令主要沿着目录结构依次向下遍历,...
  • Linux命令之文件查找:find 命令详解

    千次阅读 2018-08-22 09:41:09
    find 命令是一个很常用的命令,用于在指定路径下查找文件,相似的命令还有 which、whereis、locate 等。 扩展: 1. which 命令只会查找环境变量中的文件位置,例如: $ which find /usr/bin/find # find 命令...
  • Linux下find命令详解

    万次阅读 多人点赞 2018-07-31 00:48:07
    find命令格式: find path -option 【 -print 】 【 -exec -ok |xargs |grep 】 【 command {} \; 】 find命令的参数: 1)path:要查找的目录路径。   ~ 表示$HOME目录  . 表示当前目录  / 表示根目录...
  • Linux的find命令详解

    千次阅读 2018-10-24 21:19:54
    一、概述: 因为Linux下面一切皆文件,经常需要搜索某些文件来编写,所以对于linux来说find是一条很重要的命令。linux下面的find指令用于在目录结构中搜索文件,并... 在运行一个非常消耗资源的find命令时,很多...
  • find命令 1.说明: grep命令是Linux系统中的文本搜索工具,可以使用正则表达式搜索,也可以指定搜索结果的行数内容。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。...
  • find 命令常用用法

    万次阅读 2018-11-15 12:04:35
    find 命令——文件或目录查找而且可以直接对查找结果使用命令find 查找范围 查找条件  -name 按名称查找    -maxdepth 查看多深的文件,不能超过所限制的目录下的内容  ...
  • find命令用法

    千次阅读 2018-11-14 18:45:05
    linux的find命令用于查找指定目录中符合参数条件的文件,如果不设置任何参数,则find命令将在当前路径下查找子目录与文件。并且将查到的子目录和文件全部显示。 二.find命令常用参数 1)根据文件名及文件拥有人...
  • 本课程全面介绍了从linux基础内容,一步步,手把手掌握linux基本用法和常见管理方式。让你从课堂即实战,全面了解vim使用、find和特殊权限,学习完可轻松驾驭。
  • find 命令使用方法详细总结和示例

    千次阅读 2019-04-24 14:13:36
    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统...
  • find / -name ‘filename’ 2、查找目录 find / -name ‘path’ -type d 3、查找内容 find . | xargs grep -ri ‘content’ //find . | xargs grep -ril ‘content’ 只显示文件名称 --------------------------...
  • linux的locate命令和find命令的区别

    千次阅读 2021-06-25 14:25:48
    所以locate命令和find命令的区别就是,locate命令查找文件在数据库中查找,查找的速度非常快,几乎是马上列出结果;而find命令查找时则是直接查找硬盘上的文件,查找的速度相应的非常慢。不过find命令查找文件比...
  • Linux find命令*通配符

    千次阅读 2020-06-12 19:18:48
    上述命令test*不加引号时 shell会自动解析查找当前目录下有没有test开头的文件。 如果有会将test*这个变量转换成所有以test开头的文件。 假如当前目录有test1 test2两个文件,指令就变成了 find ./ -name test1 ...
  • linux find 命令查找文件和文件夹 查找目录:find /(查找范围) -name '查找关键字' -type d 查找文件:find /(查找...如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查...
  • linux命令:find命令

    千次阅读 2014-10-06 20:54:35
    linux find命令语法 find [起始目录] 寻找条件 操作 find PATH OPTION [-exec COMMAND { } \;] 因为find命令会根据我们给的option,也就是寻找条件从我们给出的目录开始对其中文件及其下子目录中的文件进行递归...
  • 但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。 find 命令的基本信息如下: ...
  • AIX中find命令和xargs命令介绍

    千次阅读 2018-11-27 16:54:39
    find查找文件 命令格式: find pathname options[-print -exec -ok] pathname :目录路径 -print :匹配的文件输出到标准输出 -exec :对匹配的文件执行该参数所...find命令选项 -name :按照文件名查找文件  ~ 表示当...
  • Linux中find命令

    千次阅读 2018-11-14 12:35:02
    find命令用来在指定目录下查找文件。格式为“find [查找路径] 寻找条件 操作“ 任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...
  • BAT批处理文件 find命令详解

    千次阅读 2019-04-24 22:33:17
    find 在文件中搜索字符串。 FIND [/V] [/C] [/N] [/OFF[LINE]] “string” [[drive:][path]filename[ …]] /V 显示所有未包含指定字符串的行。 /C 仅显示包含字符串的行数。 /N 显示行号。 /I 搜索字符串时忽略大小...
  • shell find命令用法

    千次阅读 2017-06-06 08:46:19
    即使系统中含有网络文件系统( N F S ),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 427,208
精华内容 170,883
关键字:

find命令