Linux 指令篇:文件或目录查找 --find



语  法: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                #按文件访问时间来查GIN: 0px">-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旧的文件

-mount                          #查文件时不跨越文件系统mount点

-follow                         #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio                           #对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune                          #忽略某个目录



范例:

#在$HOME中查.txt文件并显示

[[email protected] ~]# find    ~     -name    "*.txt"    -print

[[email protected] ~]# find    .     -name    "*.txt"    -print

#对匹配的文件使用cpio命令,将他们备份到磁带设备中

[[email protected] ~]# find    .     -name    "[A-Z]*"    -pri26nbsp;

#查以大写字母开头的文件

[[email protected] ~]# find    .     -name    "[A-Z]*"    -print

#查以host开头的文件

[[email protected] ~]# find    /etc  -name    "host*"    -print

#查以两个小写字母和两个数字开头的txt文件

[[email protected] ~]# find    .    -name    "[a-z][a-z][0--9][0--9].txt"   -print

[[email protected] ~]# find    .    -perm    755    -print

#查所有用户都可读写执行的文件同-perm 777

[[email protected] ~]# find    .    -perm -007    -exec ls -l {} \;

打印目录结构

[[email protected] ~]# find    .    -type d    -print

打印非目录文件

[[email protected] ~]# find    .    !    -type    d    -print

因grep无法递归搜索子目录,故可以和find相结合使用。 在/usr/include 所有子目录中的.h文件中找字串AF_INEF6

[[email protected] ~]# find /usr/include -name ‘*.h‘ -exec grep AF_INEF6 {} \;

[[email protected] ~]# find    .    -type l    -print

#查长度大于1Mb的文件

[[email protected] ~]# find    .    -size    +1000000c    -print

# 查长度为100c的文件

[[email protected] ~]# find    .    -size    100c          -print

#看是否存在cnscn用户

[[email protected] ~]# find    /etc -name "passwd*"    -exec grep    "cnscn"    {}    \;

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

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这个用户的文件



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

[[email protected] ~]#  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命令将它们列出



二、linux下find命令的用法

1. 基本用法:

find / -name                             文件名

find ver1.d ver2.d -name ‘*.c‘ -print    查找ver1.d,ver2.d *.c文件并打印

find . -type d -print                    从当前目录查找,仅查找目录,找到后,打印路径名。可用于打印目录结构。

2. 无错误查找:

find / -name access_log 2 >/dev/null

3. 按尺寸查找:

find / -size 1500c                     (查找1,500字节大小的文件,c表示字节)

find / -size +1500c                    (查找大于1,500字节大小的文件,+表示大于)

find / -size +1500c                    (查找小于1,500字节大小的文件,-表示小于)

4. 按时间:

find / -amin n                          最后n分钟

find / -atime n                         最后n天

find / -cmin n                          最后n分钟改变状态

find / -ctime n                         最后n天改变状态

5. 其它:

find / -empty                          空白文件、空白文件夹、没有子目录的文件夹

find / -false                          查找系统中总是错误的文件

find / -fstype type                    找存在于指定文件系统的文件,如type为ext2

find / -gid n                          组id为n的文件

find / -group gname                    组名为gname的文件

find / -depth n                        在某层指定目录中优先查找文件内容

find / -maxdepth levels                在某个层次目录中按递减方式查找

6. 逻辑

-and 条件与 -or 条件或

7. 查找字符串

find . -name ‘*.html‘ -exec grep ‘mailto:‘{}

Linux 指令篇:文件或目录查找 --find,布布扣,bubuko.com

时间: 2024-11-05 04:50:01

Linux 指令篇:文件或目录查找 --find的相关文章

Linux 指令篇:文件上传和下载 lrzsz

[ "lrzsz"一般用于SecureCRT ssh中使用 ] 简介:rz,sz是早期Linux/Unix同Windows进行ZModem文件传输的命令行工具.rz ,sz 是非常古老的zmodem协议使用的上传下载命令,早就被抛弃了的东西,目前的发行版基本都不再预装. 优点:比ftp命令方便,而且服务器不用打开FTP服务. 命令sz:将选定的文件发送(send)到本地机器 命令rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器. lrzsz安装方法: [[e

Linux命令详解--文件与目录查找

一·文件搜索 which:用来查找命令的绝对路径-- 显示shell命令的绝对路径-- 仅仅会在PATH变量中搜索要查找的命令-- 搜索时先查找别名,然后从PATH中查找1.查看用户的PATH变量:命令的搜索路径# echo $PATH/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin command not found可能原因:1)敲错了2)命令没有安装3)命令

Linux 指令篇:设定硬件时钟--hwclock

功能说明:显示与设定硬件时钟. 语 法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test] [--utc][--version][--set --date=<日期与时间>] 补充说明:在Linux中有硬件时钟与系统时钟等两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中的时钟.当Linux启动时,系统时钟会去读取硬件时钟的设定,之后

Linux 指令篇:文档编辑--col

功能说明:过滤控制字符. 语 法:col [-bfx][-l<缓冲区列数>] 补充说明:在许多UNIX说明文件里,都有RLF控制字符.当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符. 参 数:  -b   过滤掉所有的控制字符,包括RLF和HRLF.  -f   滤除RLF字符,但允许将HRLF字符呈现出来.  -x   以多个空格字符来表示跳格字

跟鸟哥学Linux之——对文件与目录操作命令汇总

在Linux中对文件和目录的操作是一个最基本的技能,就如同我们在Windows下对翻看目录和对文件的一些基本使用方法一样的重要,如果说不会对目录和文件操作那么还谈何其他的操作呢.当然Linux中的图形化界面也是很容易操作,但是在文字化处理界面就需要使用到很多命令,下边是我对这些操作的一个汇总和整合,同时列出了一些基本常用的操作命令,当然本人列出的命令是不全面的,有其他的需要还需要请教巨人了,请看下图. 在该图中我分了四部分,分别是1.巨人.2.对文件的操作命令.3.对目录的操作命令.4.同时可以

Linux删除乱码文件或者目录

Linux删除乱码文件或者目录 有时在Linux下面解压一些zip或者rar文件后会产生乱码文件或者目录,这个时候使用rm不能成功删除,需要使用一些特别的方法 来进行删除,下面是我经常使用的两种方法. 方法一: 使用rm -rf 删除上一级目录,当然前提是需要备份你需要备份的数据. 一种思路: 1. 比如/home下文件夹内含有乱码的文件 2. mkdir tmp 3. 将所有的文件首先移动到 mv * tmp/ 4.到tmp下 把所有有正常的显示字符的文件移动出来 cd tmp ; mv [a

linux下查看文件及目录个数

linux下查看文件及目录个数1.查看当前文件和目录总数(不包括子目录):ls -l | wc -l 2.查看当前目录下文件个数(不包括子目录):ls -l |grep "^-"|wc -l ===查看当前目录下文件个数(包括子目录)ls -lR |grep "^d" | wc -l 4.查看当前目录目录个数(包括子目录)ls -lR |grep "^d" | wc -l =====================================

-scp Linux之间复制文件和目录

scp 简介 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来.另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了.虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常

Linux之find文件(目录)查找

1 文件查找: 2 在文件系统上查找符合条件的文件: 3 4 文件查找:locate, find 5 非实时查找(数据库查找):locate 6 实时查找:find 7 8 locate: 9 依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务):手动更新数据库(updatedb): 10 11 索引构建过程需要遍历整个根文件系统,极消耗资源: 12 13 工作特点: 14 查找速度快: 15 模糊查找: 16 非实时查找: 17 18 locate KEYWORD 19 2