精华内容
下载资源
问答
  • linuxfind指令的使用

    2016-12-27 17:43:01
    先用一张思维导图来阐述find的选项 接下来通过几个练习对上述指令进行掌握 按文件名查找 查找txt和pdf文件 print是可选,注意花括号与字符之间距离 find . \( -name "*.txt" -o -name "*.pdf" \) -print ...

    先用一张思维导图来阐述find的选项


    接下来通过几个练习对上述指令进行掌握

    按文件名查找

    查找txt和pdf文件  print是可选的,注意花括号与字符之间的距离
    find . \( -name "*.txt" -o -name "*.pdf" \) -print
    
    查找所有非txt文本
    find . ! -name "*.txt" -print
    
    查找根目录下文件名为ls的文件
    find / -name ls
    
    查找用户的主工作目录中的文件
    find ~ -name "*" -print 

    按路径查找

    如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:
    $ find /apps -path "/apps/bin" -prune -o -print
    
    避开多个文件夹
    find /usr/sam ( -path /usr/sam/dir1 -o -path /usr/sam/file1 ) -prune -o -print
    -o 是或者的意思 -a 是而且的意思 -not 是相反的意思   
    
    它将首先匹配所有的文件然后再进入子目录中查找。
    $ find / -name "CON.FILE" -depth -print
    
    从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:
    $ find . -name "*.XC" -mount -print

    按类型查找

    find . -type d -print  //只列出所有目录
    
    在当前目录下查找除目录以外的所有类型的文件
    $ find . ! -type d -print
    
    在/etc目录下查找所有的符号链接文件,可以用
    $ find /etc -type l -print
    
    注意:find支持的文件检索类型可以区分普通文件和符号链接、目录等,但是二进制文件和文本文件无法直接通过find的类型区分出来;
    

    按时间查找

    最近第7天被访问过的所有文件:
    find . -atime 7 -type f -print
    最近7天内被访问过的所有文件:
    find . -atime -7 -type f -print
    查询7天前被访问过的所有文件:
    find . -atime +7 type f -print
    
    查找更改时间比文件sam新但比文件temp旧的文件:
    find -newer httpd1.conf ! -newer temp -ls

    按大小查找

    寻找大于2k的文件:
    find . -type f -size +2k
    
    查找大于5555字节小于5557字节的文件
    find /root -size -500K -size +50K -exec ls -ld {} \;
    注:{}是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名;

    按权限查找

    找具有可执行权限的所有文件
    find . -type f -perm 644 -print 
    找用户root所拥有的文件
    find . -type f -user root-print

    按用户查找

    找用户root所拥有的文件
    find . -type f -user root-print
    
    在$HOME目录中查找文件属主为root的文件
    $ find ~ -user root -print
    
    在/etc目录下查找文件属主为root的文件:
    $ find /etc -user root -print
    
    在/home目录下查找找属主帐户已经被删除的文件
    $ find /home -nouser -print
    
    在/apps目录下查找属于root用户组的文件,可以用:
    $ find /apps -group gem -print
    从跟系统查找没有有效所属用户组的所有文件,
    $ find / -nogroup -print
    

    找到的后续动作

    删除当前目录下所有的swp文件:
    find . -type f -name "*.swp" -delete
    find . type f -name "*.swp" | xargs rm
    xargs可以把从 stdin 接受到的输入,用空白符分隔开,然后依次作为参数去调用xargs后面的命令
    find 
    
    将当前目录下的所有权变更为mj:
    find . -type f -user root -exec chown mj{} \;
    
    将找到的文件全都copy到另一个目录:
    find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD \;
    

    展开全文
  • Linuxfind指令的使用

    千次阅读 2017-08-28 17:52:44
    如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到子目录和文件全部进行显示。find(选项)(参数)选项 amin<分钟>:查找在指定时间曾被存取过文件或目录,单位以...

    find命令

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

    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”参数类似,但会把结果保存成指定的列表文件;
    • ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
    • iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
    • 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 .

    在/home目录下查找以.txt结尾的文件名

    find /home -iname “*.txt”

    当前目录及子目录下查找所有以.txt和.pdf结尾的文件

    find . ( -name “.txt” -o -name “.pdf” ) 或
    find . -name “.txt” -o -name “.pdf”

    匹配文件路径或者文件 find /usr/ -path “local” 基于正则表达式匹配文件路径

    find . -regex “.*(.txt|.pdf)$”

    同上,但忽略大小写

    find . -iregex “.*(.txt|.pdf)$”

    否定参数 找出/home下不是以.txt结尾的文件

    find /home ! -name “*.txt”

    根据文件类型进行搜索

    find . -type

    类型参数
    类型参数列表:

    • f 普通文件
    • l 符号连接
    • d 目录
    • c 字符设备
    • b 块设备
    • s 套接字
    • p Fifo

    基于目录深度搜索
    向下最大深度限制为3
    find . -maxdepth 3 -type f
    搜索出深度距离当前目录至少2个子目录的所有文件
    find . -mindepth 2 -type f
    根据文件时间戳进行搜索
    find . -type f
    时间戳 UNIX/Linux文件系统每个文件都有三种时间戳: 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。 搜索最近七天内被访问过的所有文件
    find . -type f -atime -7
    搜索恰好在七天前被访问过的所有文件
    find . -type f -atime 7 搜索超过七天内被访问过的所有文件
    find . -type f -atime +7 搜索访问时间超过10分钟的所有文件
    find . -type f -amin +10 找出比file.log修改时间更长的所有文件
    find . -type f -newer file.log 根据文件大小进行匹配
    find . -type f -size 文件大小单元 文件大小单元: b —— 块(512字节) c —— 字节 w —— 字(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节 搜索大于10KB的文件
    find . -type f -size +10k 搜索小于10KB的文件
    find . -type f -size -10k 搜索等于10KB的文件
    find . -type f -size 10k 删除匹配文件 删除当前目录下所有.txt文件
    find . -type f -name “*.txt” -delete 根据文件权限/所有权进行匹配 当前目录下搜索出权限为777的文件 find . -type f -perm 777 找出当前目录下权限不是644的php文件
    find . -type f -name “*.php” ! -perm 644 找出当前目录用户tom拥有的所有文件
    find . -type f -user tom 找出当前目录用户组sunk拥有的所有文件
    find . -type f -group sunk 借助-exec选项与其他命令结合使用 找出当前目录下所有root的文件,并把所有权更改为用户tom find .-type f -user root -exec chown tom {} \; 上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。 找出自己家目录下所有的.txt文件并删除 find $HOME/. -name “*.txt” -ok rm {} \; 上例中,-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。 查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中
    find . -type f -name “*.txt” -exec cat {} \;> all.txt 将30天前的.log文件移动到old目录中
    find . -type f -mtime +30 -name “*.log” -exec cp {} old \; 找出当前目录下所有.txt文件并以“File:文件名”的形式打印出来
    find . -type f -name “*.txt” -exec printf “File: %s\n” {} \;
    因为单行命令中-exec参数中无法使用多个命令,以下方法可以实现在-exec之后接受多条命令 -exec ./text.sh {} \; 搜索但跳出指定的目录
    查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk
    find . -path “./sk” -prune -o -name “*.txt” -print find其他技巧收集 要列出所有长度为零的文件
    find . -empty

    组合应用

    前面哪些你如果看的晕,只关心结果,那么我来补充几个使用的技巧

    • 在当前目录及其子目录的php文件中查找include字符串
    find -name '*.php'|xargs grep 'include'
    find . -name '*.php' -exec grep -i -nH "include" {} \;//同上

    比如我要寻找所有mk文件中包含com.mediatek.keyguard.ext的地方:

    find -name ‘*.mk’|xargs grep ‘com.mediatek.keyguard.ext’

    • 把搜索结果保存到文本
      有的时候结果太多了,在vim上看起来会很麻烦,那么需要保存到文本,使用>,比如我想把上面的搜索结果放到result001.txt中:

    find -name ‘Android.mk’|xargs grep ‘com.mediatek.keyguard.ext’ > result001.txt

    展开全文
  • find指令 Linux下find命令在目录结构中搜索文件,并执行指定操作。命令参数1、 -print:find命令将匹配文件输出到标准输出。 2、-exec:find命令对匹配文件执行该参数所给出shell命令。命令选项1、-name...

    find指令
    Linux下find命令在目录结构中搜索文件,并执行指定的操作。

    命令参数

    1、 -print:find命令将匹配的文件输出到标准输出。
    find . -print

    2、-exec:find命令对匹配的文件执行该参数所给出的shell命令。

    find . -print -exec { } \;

    命令选项

    1、-name:按照文件名查找文件

    1)查找以.c结尾的文件

    find ~ -name “*.c”-print

    2)查找以A-Z开头的文件

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

    3)根据定义文件格式查找文件

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

    2、-perm:按照文件权限查找文件

    find . -perm 700 -print

    3、-user: 查找属于用户的文件或目录

    find . -user lt

    4、-group:查找所属组为某用户的文件

    find -group lt

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

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

    find . -mtime +1

    展开全文
  • linux的find指令

    2017-02-17 14:25:03
    Linux下提供了相当多查找命令,比如which指令,比如whereis指令。 我们经常在linux要查找某个文件,但不知道放在哪里了,可以 使用下面一些命令来搜索: Which 查看可执行文件位置。  whereis 查看文件...
    Linux下find命令在目录结构中搜索文件,并执行指定的操作。 
    Linux下提供了相当多的查找命令,比如which指令,比如whereis指令。
    我们经常在linux要查找某个文件,但不知道放在哪里了,可以 使用下面的一些命令来搜索:
    Which   查看可执行文件的位置。 
    whereis 查看文件的位置。
    locate 配合数据库查看文件位置。
    Find    实际搜寻硬盘查询?文件名称。 
    which命令的作用是,在PATH变量指定的路径中,搜索某个系 统命令的位置,并且返回第一个搜索结果。也就是说,使用which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一 个位置的命令。?
    命令格式: which?可执?行?文件名称
    命令功能:which指令会在PATH变量指定的路径中,搜索某个系统命令 的位置,并且返回第一个搜索结果。
    命令参数: -n 指定文件名长度,指定的长度必须大于或等于所有文 件中最长的文件名。
                     -p 与-n参数相同,但此处的包括了文件的路径。
                     -w 指定输出时栏位的宽度。 

                     -V 显示版本信息 


    whereis指令: whereis命令只能用于程序名的搜索,而且只搜索二进制文件 (参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。 如果省略参数,则返回所有信息。 和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库?文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率会很高。但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是 因为数据库文件没有被更新。
    命令格式: whereis  [-bmsu]  [BMS 目录名  -f] 文件名 
    命令功能:whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。
    命令参数: -b  定位可执行文件。 
                     -m  定位帮助?文件。 
                     -s 定位源代码?文件。 
                     -u 搜索默认路径下除可执行文件、源代码文件、帮助文 件以外的其它文件。 
                     -B 指定搜索可执行文件的路径。 
                     -M 指定搜索帮助文件的路径。 
                     -S 指定搜索源代码?文件的路径。 
    使用实例: Whereis 
      find指令:
     命令格式: find pathname -options [-print -exec -ok ...] 
     命令功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘) 
     命令参数: pathname: find命令所查找的目录路径。
                      例如用.来表示当前目 录,用/来表示系统根目录。 
                      -print: find命令将匹配的文件输出到标准输出。
                      -exec: find命令对匹配的?文件执?行该参数所给出的shell命 令。相应命令的形式为'command'  {? }  \;,注意{?? }和\; 之间的空格。
                       -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行 该参数所给出的shell命令,在执行每一个命令之前,都会给出提 示,让用户来确定是否执行。 
     命令选项: -name 按照文件名查找文件。 
                      -perm:按照文件权限来查找文件。
                      -prune:使用这一选项可以使find命令不在当前指定的目录中查 找,如果同时使用-depth选项,那么-prune将被find命令忽 略。
                      -user username:按照文件属主来查找文件。
                      -group groupname:按照文件所属的组来查找文件。
                      -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命令,将这些文件备份到磁带设备 中。
                    
      Linux 用find命令查找文件的办法    
      例如: 

       查找/目录下文件名为test的目录    find  /   -name   test

       查找HOME中.txt文件并显示       find ~ -name "*.txt" -print 

         

       查找所有目录名称中按照”.log”结尾的目录     find  /   -name   "*.log"   -print


       查找以大写字母开头的文件      find   -name  "[A-Z]*"  -print

       查找以两个小写字母和两个数字开头的.txt文件     find -name "[a-z][a-z][0-9][0-9].txt"   -print


          查找所有用户都可读写可执行的文件    find .  -perm -007  -exec  ls  -|  {}  \  或者 find . -perm 777

      打印目录结构     find .  type  d  -print

      

        
    查找长度大于1Mb的文件   find . -size  +1000000c -print

    查找长度为100c的文件  find -size 100c -print


    展开全文
  • Linux find 指令

    2017-04-17 17:14:33
    find指令linux系统中一个很重要指令,他用法很多,也很方便,所以学习使用find指令就显得格外重要了Linux下find命令在目录结构中搜索文件,并执行指定操作。Linux下find命令提供了相当多查找条件,功能很...
  • linuxfind(文件查找)命令用法总结2011-11-03 12:51:15分类:LINUX前言:我们为什么要学会使用find命令?每一种操作系统都有成千上万文件组成,对于linux这样“一切皆文件”操作系统来说更不例外,大家应该...
  • Linux的find指令

    2017-04-02 13:01:55
    Linux下我们可以用到三个命令来查找文件,通常使用whereis或者是locate来检查,如果真找不到了我们就以find来找。因为whereis和locate是... find指令需要在目录结构中搜索文件,并执行指定操作。它用于在文件树
  • find命令从指定起始目录开始,递归地搜索其各个子目录,查找满足寻找条件文件并对之采取相关操作。   复合条件查找 该命令提供寻找条件可以是一个用逻辑运算符not、and、or组成复合条件。逻辑运算符and...
  • 它是Linux系统使用非常重要一条指令,它也包含了很多选项。 1.它的指令格式如下: find pathname -options [-printf -exec -ok ...]  2.指令功能: 用于在文件树中查找文件,并做出相应处理。 3....
  • linux的Find指令

    2017-04-03 11:36:38
    为何使用Find 我们常说linux下皆文件,这在强调Linux下文件操作重要性同时,也向我们暗示了linux一个操作系统组成是由无数个文件构成。在这些操作系统中有系统本身自带文件,用户自己文件,还有共享文件...
  • 一、使用find与grep 查找所有".h"文件(非组合命令) find /PATH -name "*.h" 查找所有".h"文件中含有"helloworld"字符串文件(组合命令) find /PATH -name "*.h" -exec grep -in "helloworld" {} \; find ...
  • linux的find指令

    千次阅读 2017-03-29 11:56:30
    文件查找在Linux下我们可以用到三个命令来查找文件,通常我们都是先使用whereis或者是locate来检查,如果真找不到了我们才以find来找。为什么呢?因为whereis和locate是利用数据库来查找数据,所以相当快速,...
  • Linux find指令总结

    2020-09-28 09:28:06
    如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到子目录和文件全部进行显示。 语法 find path -option [ -print ] [ -exec -ok command ] {} \; 参数说明: find...
  • linux中的find命令及相关实例: find指令是个使用频率比较高的命令。...一.find指令的一般格式: find [pathname] -options [-print / -ecex / -ok...]其中:pathname表示要查找的目录~表示home目录. 表示当...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 339
精华内容 135
关键字:

find指令的使用linux

linux 订阅