精华内容
下载资源
问答
  • linux find 命令查找文件和文件夹

    万次阅读 2018-04-12 10:21:12
    查找目录:find /(查找范围) -name '查找关键字' -type d查找文件find /(查找范围) -name 查找关键字 -print 如果需要更进一步的了解,可以参看Linux命令详解。这里摘抄如下: ·find path -option [ -...

    查找目录:find /(查找范围) -name '查找关键字' -type d
    查找文件:find /(查找范围) -name 查找关键字 -print

     

     

    如果需要更进一步的了解,可以参看Linux的命令详解。

    这里摘抄如下:

     

    ·find path -option [ -print ] [ -exec -ok command ] {} /;
    #-print 将查找到的文件输出到标准输出
    #-exec command {} /;     -----将查到的文件执行command操作,{} 和 /;之间有空格
    #-ok 和-exec相同,只不过在操作前要询用户

    ====================================================

    -name filename             #查找名为filename的文件
    -perm                       #按执行权限来查找
    -user   username            #按文件属主来查找
    -group groupname            #按组来查找
    -mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
    -atime   -n +n              #按文件访问时间来查
    -perm                        #按执行权限来查找
    -user   username            #按文件属主来查找
    -group groupname            #按组来查找
    -mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
    -atime   -n +n              #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
    -ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
    -nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
    -nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
    -newer f1 !f2              找文件,-n指n天以内,+n指n天以前
    -ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
    -nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
    -nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
    -newer f1 !f2              #查更改时间比f1新但比f2旧的文件
    -type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
    -size     n[c]              #查长度为n块[或n字节]的文件
    -depth                      #使查找在进入子目录前先行查找完本目录
    -fstype                     #查更改时间比f1新但比f2旧的文件
    -type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
    -size     n[c]              #查长度为n块[或n字节]的文件
    -depth                      #使查找在进入子目录前先行查找完本目录
    -fstype                     #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
    -mount                      #查文件时不跨越文件系统mount点
    -follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
    -cpio                   #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
    -mount                      #查文件时不跨越文件系统mount点
    -follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
    -cpio                       #对匹配的文件使用cpio命令,将他们备份到磁带设备中
    -prune                      #忽略某个目录

    ====================================================
    $find ~ -name "*.txt" -print    #在$HOME中查.txt文件并显示
    $find .   -name "*.txt" -print
    $find .   -name "[A-Z]*" -pri26nbsp;   #对匹配的文件使用cpio命令,将他们备份到磁带设备中
    -prune                              #忽略某个目录

    =====================================================
    $find ~ -name "*.txt" -print    #在$HOME中查.txt文件并显示
    $find .   -name "*.txt" -print
    $find .   -name "[A-Z]*" -print #查以大写字母开头的文件
    $find /etc -name "host*" -print #查以host开头的文件
    $find . -name "[a-z][a-z][0--9][0--9].txt"   -print #查以两个小写字母和两个数字开头的txt文件
    $find . -perm 755 -print
    $find . -perm -007 -exec ls -l {} /; #查所有用户都可读写执行的文件同-perm 777
    $find . -type d -print
    $find . ! -type d -print
    $find . -type l -print

    $find . -size +1000000c -print       #查长度大于1Mb的文件
    $find . -size 100c        -print      # 查长度为100c的文件
    $find . -size +10 -print             #查长度超过期作废10块的文件(1块=512字节)

    $cd /
    $find etc home apps   -depth -print | cpio -ivcdC65536 -o /dev/rmt0
    $find /etc -name "passwd*" -exec grep "cnscn" {} /; #看是否存在cnscn用户
    $find . -name "yao*" | xargs file
    $find . -name "yao*" | xargs echo   "" > /tmp/core.log
    $find . -name "yao*" | xargs chmod o-w

    ======================================================

    find -name april*                      在当前目录下查找以april开始的文件
    find -name april* fprint file        在当前目录下查找以april开始的文件,并把结果输出到file中
    find -name ap* -o -name may* 查找以ap或may开头的文件
    find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
    find /mnt -name t.txt ! -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
    find /tmp -name wa* -type l           在/tmp下查找名为wa开头且类型为符号链接的文件
    find /home -mtime -2                 在/home下查最近两天内改动过的文件
    find /home   -atime -1                  查1天之内被存取过的文件
    find /home -mmin   +60                  在/home下查60分钟前改动过的文件
    find /home -amin +30                  查最近30分钟前被存取过的文件
    find /home -newer tmp.txt             在/home下查更新时间比tmp.txt近的文件或目录
    find /home -anewer tmp.txt            在/home下查存取时间比tmp.txt近的文件或目录
    find /home -used -2                  列出文件或目录被改动过之后,在2日内被存取过的文件或目录
    find /home -user cnscn                列出/home目录内属于用户cnscn的文件或目录
    find /home -uid +501                 列出/home目录内用户的识别码大于501的文件或目录
    find /home -group cnscn              列出/home内组为cnscn的文件或目录
    find /home -gid 501                   列出/home内组id为501的文件或目录
    find /home -nouser                    列出/home内不属于本地用户的文件或目录
    find /home -nogroup                   列出/home内不属于本地组的文件或目录
    find /home   -name tmp.txt   -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
    find /home -name tmp.txt -mindepth 3 从第2层开始查
    find /home -empty                     查找大小为0的文件或空目录
    find /home -size +512k               查大于512k的文件
    find /home -size -512k               查小于512k的文件
    find /home -links +2                 查硬连接数大于2的文件或目录
    find /home -perm 0700                查权限为700的文件或目录
    find /tmp -name tmp.txt -exec cat {} /;
    find /tmp -name tmp.txt -ok rm {} /;

    find   / -amin   -10       # 查找在系统中最后10分钟访问的文件
    find   / -atime -2         # 查找在系统中最后48小时访问的文件
    find   / -empty              # 查找在系统中为空的文件或者文件夹
    find   / -group cat        # 查找在系统中属于 groupcat的文件
    find   / -mmin -5         # 查找在系统中最后5分钟里修改过的文件
    find   / -mtime -1        #查找在系统中最后24小时里修改过的文件
    find   / -nouser             #查找在系统中属于作废用户的文件
    find   / -user   fred       #查找在系统中属于FRED这个用户的文件

    查当前目录下的所有普通文件
    --------------------------------------------------------------------------------

    # 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
    查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出


    =================================================
    在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
    $ find logs -type f -mtime +5 -exec -ok rm {} /;


    =================================================
    查询当天修改过的文件
    [root@book class]# find ./ -mtime -1 -type f -exec ls -l {} /;


    =================================================
    查询文件并询问是否要显示
    [root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
    < ls ... ./classDB.inc.php > ? y
    -rw-r--r--    1 cnscn    cnscn       13709 1月 12 12:22 ./classDB.inc.php
    [root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
    < ls ... ./classDB.inc.php > ? n
    [root@book class]#

    =================================================
    查询并交给awk去处理
    [root@book class]# who | awk '{print $1"/t"$2}'
    cnscn   pts/0

    =================================================
    awk---grep---sed

    [root@book class]# df -k | awk '{print $1}' | grep -v 'none' | sed s"///devg"
    文件系统
    sda2
    sda1
    [root@book class]# df -k | awk '{print $1}' | grep -v 'none'
    文件系统
    /dev/sda2
    /dev/sda1


    1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名

    A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
    B) grep SYSCALL_VECTOR /tmp/*.h | cut   -d':' -f1| uniq > filename
    C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} /; -print


    2)find / -name filename -exec rm -rf {} /;
    find / -name filename -ok rm -rf {} /;


    3)比如要查找磁盘中大于3M的文件:
    find . -size +3000k -exec ls -ld {} ;


    4)将find出来的东西拷到另一个地方
    find *.c -exec cp '{}' /tmp ';'

    如果有特殊文件,可以用cpio,也可以用这样的语法:
    find dir -name filename -print | cpio -pdv newdir


    6)查找2004-11-30 16:36:37时更改过的文件
    # A=`find ./ -name "*php"` | ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"

    展开全文
  • linux find 命令查找文件和文件夹 查找目录:find /(查找范围) -name '查找关键字' -type d 查找文件:find /(查找...如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查...

    linux find 命令查找文件和文件夹

    查找目录:find /(查找范围) -name '查找关键字' -type d
    查找文件:find /(查找范围) -name 查找关键字 -print

     

     

    详解:

    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”参数类似,但会把结果保存成指定的列表文件;
    -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 .

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

    find /home -name "*.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 类型参数

    类型参数列表:

    • 普通文件
    • 符号连接
    • d 目录
    • 字符设备
    • 块设备
    • 套接字
    • 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
    展开全文
  • Linux 命令find:查找文件

    万次阅读 多人点赞 2018-01-19 11:50:49
    温馨提示:本教程的 GitHub 地址为「linux-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。 在 Linux 命令中,find用于在...如果在使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将

    给大家推荐一个比较有趣的公众号,一个陌生人的生活日记
    mulanqiyue

    温馨提示:本教程的 GitHub 地址为「linux-tutorial」,欢迎感兴趣的童鞋StarFork,纠错。

    在 Linux 命令中,find用于在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名,其支持按名称查找、按正则表达式查找、按文件大小查找、按文件权限查找等多种查询方式。如果在使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

    • 语法:find + 目标目录(路径) + <选项> + 参数

    常用选项列表

    选项 含义
    -perm <权限数值> 查找符合指定的权限数值的文件或目录
    -type <文件类型> 只寻找符合指定的文件类型的文件
    -name <范本样式> 指定字符串作为寻找文件或目录的范本样式
    -expty 寻找文件大小为 0 Byte 的文件,或目录下没有任何子目录或文件的空目录
    -ls 假设find指令的回传值为ture,就将文件或目录名称列出到标准输出
    -maxdepth <目录层级> 设置最大目录层级
    -mindepth <目录层级> 设置最小目录层级
    -exec <执行指令> 假设find指令的回传值为true,就执行该指令
    -ok <执行指令> 此参数的效果和指定-exec类似,但在执行指令之前会先询问用户,若回答yY,则放弃执行命令

    示例

    首先,给出演示使用的文件结构:

    0000

    • 示例 1:查找当前目录及其子目录下所有文件和文件夹
    find .
    

    01

    • 示例 2:在/testLinux目录下查找以.txt结尾的文件名
    // 需要书写完整的路径
    find /tmp/cg/testLinux -name "*.txt"
    

    02

    • 示例 3:组合查找文件名以file1开头(与、或、非)file2开头的文件
    /**
     * 组合查找语法:
     * -a        与(取交集)
     * -o        或(取并集)
     * -not      非(同 !)
     * !         非(同 not)
     */
    
    find . -name "file1*" -a -name "file2*"
    find . -name "file1*" -o -name "file2*"
    find . -name "file1*" -not -name "file2*"
    find . -name "file1*" ! -name "file2*"
    

    03

    • 示例 4:根据文件类型进行搜索
    /**
     * 查找当前目录及所有子目录下的普通文件
     */
    
    find . -type f
    

    04

    • 示例 5:基于目录深度进行搜索
    /**
     * 限制最大深度为 3
     */
    
    find . -maxdepth 3 -type f
    
    /**
     * 限制最大深度为 2
     */
    
    find . -maxdepth 2 -type f
    

    05

    • 示例 6:基于文件权限进行搜索
    /**
     * 搜索权限为 777 的文件
     */
    
    find . -type f -perm 777
    
    /**
     * 搜索 .txt 格式且权限不为 777 的文件
     */
    
    find . -type f -name "*.txt" ! -perm 777
    

    06

    • 示例 7:借助-exec命令,将当前目录及子目录下所有.txt格式的文件以File:文件名的形式打印出来
    find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;
    

    07

    • 示例 8:借助-exec命令,将当前目录及子目录下所有 3 天前的.txt格式的文件复制一份到old目录
    find . -type f -mtime +3 -name "*.txt" -exec cp {} old \;
    

    08


    文件类型参数列表

    文件类型参数 含义
    f 普通文件
    l 符号连接
    d 目录
    c 字符设备
    b 块设备
    s 套接字
    p Fifo

    文件大小单元列表

    文件大小单元 含义
    b 块(512 字节)
    c 字节
    w 字(2 字节)
    k 千字节
    M 兆字节
    G 吉字节

    选项列表

    选项 含义
    -amin <分钟> 查找在指定时间曾被存取过的文件或目录,单位以分钟计算
    -atime <24小时数> 查找在指定时间曾被存取过的文件或目录,单位以 24 小时计算
    -cmin <分钟> 查找在指定时间之时被更改过的文件或目录
    -ctime <24小时数> 查找在指定时间之时被更改的文件或目录,单位以 24 小时计算
    -anewer <参考文件或目录> 查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录
    -cnewer <参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录
    -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 在线帮助
    -name <范本样式> 指定字符串作为寻找文件或目录的范本样式
    -iname <范本样式> 此参数的效果和指定-name参数类似,但忽略字符大小写的差别
    -ilname <范本样式> 此参数的效果和指定-lname参数类似,但忽略字符大小写的差别
    -inum <inode编号> 查找符合指定的inode编号的文件或目录
    -path <范本样式> 指定字符串作为寻找目录的范本样式
    -ipath <范本样式> 此参数的效果和指定-path参数类似,但忽略字符大小写的差别
    -iregex <范本样式> 此参数的效果和指定-regexe参数类似,但忽略字符大小写的差别
    -links <连接数目> 查找符合指定的硬连接数目的文件或目录
    -ls 假设find指令的回传值为ture,就将文件或目录名称列出到标准输出
    -maxdepth <目录层级> 设置最大目录层级
    -mindepth <目录层级> 设置最小目录层级
    -mmin <分钟> 查找在指定时间曾被更改过的文件或目录,单位以分钟计算
    -mount 此参数的效果和指定-xdev相同
    -mtime <24小时数> 查找在指定时间曾被更改过的文件或目录,单位以 24 小时计算
    -newer <参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录
    -nogroup 找出不属于本地主机群组识别码的文件或目录
    -noleaf 不去考虑目录至少需拥有两个硬连接存在
    -nouser 找出不属于本地主机用户识别码的文件或目录
    -ok <执行指令> 此参数的效果和指定-exec类似,但在执行指令之前会先询问用户,若回答yY,则放弃执行命令
    -perm <权限数值> 查找符合指定的权限数值的文件或目录
    -print 假设find指令的回传值为ture,就将文件或目录名称列出到标准输出,格式为每列一个名称,每个名称前皆有./字符串
    -print0 假设find指令的回传值为ture,就将文件或目录名称列出到标准输出,格式为全部的名称皆在同一行
    -printf <输出格式> 假设find指令的回传值为ture,就将文件或目录名称列出到标准输出,格式可以自行指定
    -prune 不寻找字符串作为寻找文件或目录的范本样式
    -regex <范本样式> 指定字符串作为寻找文件或目录的范本样式
    -size <文件大小> 查找符合指定的文件大小的文件
    -true find指令的回传值皆设为true
    -type <文件类型> 只寻找符合指定的文件类型的文件
    -uid <用户识别码> 查找符合指定的用户识别码的文件或目录
    -used <日数> 查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算
    -user <拥有者名称> 查找符和指定的拥有者名称的文件或目录
    -version——version 显示版本信息
    -xdev 将范围局限在先行的文件系统中
    -xtype <文件类型> 此参数的效果和指定-type参数类似,差别在于它针对符号连接检查
    展开全文
  • Linux find命令详解

    千次阅读 2019-05-30 11:05:41
    Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行...

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

    语法:

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

    path :  find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

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

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

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

     

    参数说明:

    -amin n :在过去n分钟内被读取过

    -anewer file :比文件file更晚被读取过的文件

    -atime n :在过去n天内被读取过的文件

    -cmin n :在过去n分钟内被修改过

    -cnewer file :比文件file更新的文件

    -ctime n :在过去n天内被修改过的文件

    注:以上+n表示n以前,-n 表示n以内

    -empty :空的文件-gid n or -groupname : gid是n或是group名称是name

    -ipath p, -path p :路径名称符合p的文件,ipath会忽略大小写

    -name name, -iname name :文件名称符合name的文件。iname会忽略大小写

    -size n :文件大小是n,单位,b代表512位元组的区块,c表示字元数,k表示kilo bytes。

    -type c :文件类型是c的文件。

    d:目录

    • c:字型装置文件
    • b:区块装置文件
    • p:具名贮列
    • f:一般文件
    • l:符号连结
    • s: socket

    -pid n : process id是n的文件

    你可以使用( )将运算式分隔,并使用下列运算。

    exp1 -and exp2

    ! expr

    -not expr

    exp1 -or exp2

    exp1, exp2

     

    实例:

    将目前目录及其子目录下所有延伸档名是c的文件列出来。

    # find . -name "*.c"

    将目前目录其其下子目录中所有一般文件列出

    # find . -type f

    将目前目录及其子目录下所有最近20天内更新过的文件列出

    # find . -ctime -20

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

    # find /var/log -type f -mtime +7 -ok rm {}\;

    查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

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

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

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

    观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

    展开全文
  • Linux使用find命令查找文件

    千次阅读 2019-02-27 13:10:50
    find 命令功能非常强大,通常用来在 特定的目录下搜索 符合条件的文件 # 查找指定路径下扩展名是.py的文件,包括子目录 $ find [路径] -name ".py" 如果路径省略,表示在当前文件夹下查找 示例一:...
  • Linux find 命令如何抑制权限不足的文件不显示 普通用户在使用 find 命令时经常会看到提示 “权限不够” ,并将这一串路径输出出来,往往是一大串,这会妨碍我们查找真正需要的信息,甚至在root超级管理员用户也可能...
  • linux find命令详解

    万次阅读 2018-04-25 23:46:19
    ”-a “并且,“ -o ” 或,“ –not”否find -name *history //查找当前目录及子目录下所有以history结尾的文件find -name mysql* //查找当前目录及子目录下所有以mysql开头的文件find -name mysql* -o -name *...
  • Linux命令文件查找:find 命令详解

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

    万次阅读 2010-10-13 11:12:00
    find 命令linux中是很常用到的一个查找命令,它的功能非常地强大。可以结合正则匹配来搜索系统中的指定的内容,以下我就记录一下这个find常用到的一些用法   首先我们来看看find的总体用法 ...
  • linux中如何使用find命令查找文件

    万次阅读 2017-08-06 17:06:36
    find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。 下面介绍一些关于使用find命令查找文件的命令格式和示例: 1.格式: find +目录 +条件 +条件值 如果使用该命令时,不设置...
  • 在我们日常跨系统开发和服务部署上,Linux find文件查找命令与grep文件内容查找命令是经常用的,现整理了一下这两种命令的常用方法和参数设置,...(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,
  • linux使用find命令快速查找文件

    千次阅读 2019-01-26 16:29:33
    有时候我们忘记文件存放在哪里了,我们只知道文件的名字或者名字的部分字节,可以使用find命令来快速查找:   # find / -name *node10* /var/lib/libvirt/images/rh7_node10.img   这里我要的是一个名字里面...
  • 但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过大的搜索范围。 find 命令的基本信息如下: ...
  • Linux find 命令使用

    千次阅读 2013-11-20 18:50:20
    其实,这些功能,Linuxfind命令都是有的。其实,find命令的参数就是用来指明查找条件的。(这些条件参数都是用-开头的)。find 命令可以按文件名(-name),文件的大小(-size)、文件的修改时间(-mtime)、文件的类型...
  • linux下的find文件查找命令与grep文件内容查找命令 ...区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内...
  • 例如查找2019-08-08到2019-11-23号之间的文件,使用如下命令即可: find log/ -name '*.log' -newermt '2019-08-08' ! -newermt '2019-11-23' 出 3 天”以前”被改动过的文件 72小时之前 find /var/log/ -mtime +3...
  • Linuxfind命令和grep命令查找文件

    万次阅读 2017-11-24 17:39:04
     区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。   (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配...
  • 需求:删除 /home/file/ 目录下10天之前生成的txt类型的文件find /home/file/ -ctime +10 -name "... -delete 经过测试在文件比较多的情况下 第二条命令比第一条速度更快。//时间条件 -amin n: 查找...
  • Linux Find 命令精通指南

    千次阅读 2007-03-24 15:23:00
    作者:Sheryl Calish Linux find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他 Linux 命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至...
  • Linux find命令

    千次阅读 2013-08-20 13:54:26
    每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方... 可是使用Linux的用户就没有那么幸运了,
  • find命令与locate命令的区别:locate: 1) 非实时查找; 2) 依赖于索引,而索引构建非常占用资源,索引的创建是在系统空闲时系统自动进行, 可以用updatedb命令更新索引; 3) 查找速度快; 4) 非精准查找。find :...
  • linux find命令复杂条件查询

    千次阅读 2013-08-27 00:25:20
    linux下面查询某类型的文件命令如下:find / -name '*.jpg'如果要查询jpg和jpeg文件,可使用-o指令find / -name '*.jpg' -o -name '*.jpeg'如果你只想查找文件名,而不想返回目录路径,可以使用-execfind ./ \( -...
  • Linux find命令的几个备忘

    千次阅读 2015-10-12 16:03:02
    Linux find命令的几个备忘下面的内容只是我在使用Linuxfind命令时候遇到的几个小问题,在这里做一个记录,更详细的find命令的使用参考man手册。1. -name | -path中的pattern是精准匹配首先我们看一下-name的几个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 206,245
精华内容 82,498
关键字:

linuxfind命令找文件

linux 订阅