Linux find命令用法详解

find命令:实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找
工作特性:1、查找速度略慢 2、精确查找 3、实时查找

用法:find [OPTIONS] [查找起始路径] [查找条件] -[处理动作]
    查找条件:
        根据文件从属关系查找:
            -user username:查找属主指定用户的所有文件
            -group groupname:查找属组指定组的所有文件
            -uid UID:搜索属主指定的UID的所有文件
            -group GID:查找属组指定的GID的所有文件
            -nouser:查找没有属主的文件
            -nogroup:查找没有属组的文件

        根据文件类型查找:
            -type TYPE
             f:普通文件
             d:目录文件
             l:符号链接文件
             b:块设备文件
             s:套接字文件
             c:字符设备文件
             p:管道文件

        组合测试:
            与:-a,默认组合逻辑
            或:-o
            非:-not ,  !

        根据文件的大小查找
         -size [+|-]num    常用单位:k,m,G
                     num:(num-1,num]
                     -num:[0,num-1)
                     +num:(num,oo)
                注意:开闭开间

                根据时间戳查找:
                    以“天”为单位
                        -atime [+|-]num         访问时间
            -mtime [+|-]num                   修改时间
                        -ctime [+|-]num         改变时间
          以“分钟”为单位
            -amin [+|-]num
                        -mmin [+|-]num
            -cmin [+|-]num

    根据权限查找
        -perm [+|/]mode
        mode:精确权限匹配
        /mode:任何一类用户(u,g,o)的权限中的任何一位(rwx)符合条件即满足
            9位权限之间存在“或”关系
        -mode:每一类用户(u,g,o)的权限中每一位(r,w,x)符合条件即满足
            9位权限之间存在“与”关系

    处理动作:
        -print:输出至标准输出,默认的动作
        -s:类似于对处理找到的文件执行“ls -l”命令,输出文件的详细信息             -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中
        -ok COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令
        -exec COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令

            注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,
                    并一次性传递给后面的命令,但是有些命令不能接受过长的参数,此时命令执行会失败,
                    另一种方式可规避此问题

练习:
1.找出/tmp目录下属主为非root所有文件

find /tmp/ ! -user root
find /tmp/ -not -user root

2.找出/tmp目录下文件名不包含fstab字符串的文件

find /tmp/ ! -name ‘fstab‘
find /tmp/ -not -name ‘fstab‘

3.找出/tmp目录下属主为非root,而且文件不包含fstab字符串

find /tmp/ ! -name ‘fstab‘ -a ! -user root
find /tmp/ -not \( -name ‘fstab‘ -o -user root \)

4.查找/var目录下属主为root,且属组Python的所有文件或目录

find /var/ -user root -group python -ls

5.查找/usr目录下不属于root,bin或Python的所有文件或目录,用两种方法

sudo find /tmp/recover/usr/ -not \( -user root -o -user bin -o -user python \)
sudo find /tmp/recover/usr/ -not -user root -o -user bin  -o -user python

6.查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是Python用户的所有文件或目录

sudo find /etc/ -mtime -7 -o -not \( -user root -o -user python \)

7.查找当前系统上没有属主或属组,且最近一周内曾被被访问过的文件或目录

sudo find / -ctime -7 -a -nouser

8.查找/etc目录下大于1M且类型为普通文件的所有文件

sudo find /etc/ -size +1M  -type f

9.查找/etc目录下所有用户都没有写权限的文件

sudo find /etc  -not -perm /222 -type f

10.查找/etc目录至少有一类用户没有执行权限的文件

sudo find /tmp/recover -perm /111 -a -not -perm -111 –type f

11.查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的所有文件

sudo find /etc/init.d/ -perm -113  -type f

原文地址:https://blog.51cto.com/14192118/2415254

时间: 2024-08-05 19:16:13

Linux find命令用法详解的相关文章

linux wget 命令用法详解(附实例说明)

Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器.如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器.这样既浪费时间又浪费精力,那不没办法的事.而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步.wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来

Linux grep命令用法详解

grep: Global search regular expression and print out the line.作用:文本搜索工具,根据用户指定的"模式(过滤条件)"对目标文件逐行进行匹配检查,打印匹配的行模式:由正则表达式的元字符及文本字符所编写出的过滤条件 grep [OPTIONS] PATTERN [FILE-] OPTIONS: --color=auto:对匹配到的文本着色后高亮显示 -i, --ignore-case:忽略字符的大小写 -o, --only-ma

Linux more 命令用法详解

名称:more  说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h . 参数:-num 一次显示的行数 -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔

linux nc命令使用详解(转)

linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] 参 数: -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个. -G<指向器数目> 设置来源路由指向器,其数值为4的

【转】 wget 命令用法详解

wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能和特点:(1)支持断点下传功能:这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了:(2)同时支持FTP和HTTP下载方式:尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件:(3)支持代理服务器:对安全强度很高的系统而言,一般不会将自己的系统直接暴

Tar命令用法详解

tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf all.tar *.jp

(转)linux nc命令使用详解

linux nc命令使用详解 原文:https://www.2cto.com/os/201306/220971.html 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] 参 数: -g<网关>  设置路由器跃程

install 命令用法详解

install 命令用法详解 http://man.linuxde.net/install install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户.install命令和cp命令类似,都可以将文件/目录拷贝到指定的地点. 但是,install允许你控制目标文件的属性. install通常用于程序的makefile,使用它来将程序拷贝到目标(安装)目录  make install 语法 install [OPTION]... [-T] SOURCE DEST install [O

Linux常用命令与详解

Linux常用命令与详解 在Linux系统中文件删除.创建.更改等操作都是通过一个个不同的命令来完成我们想要的操作,那么什么是命令呢? 凡是在字符操作界面中输入的能够完成特定操作和任务的字符串都可以称为命令.严格来说,命令通常只代表了实现某一类功能的指令或程序的名称. 下面我们就来了解Linux系统中命令的分类有哪些?命令行的组成格式有哪些?常用的命令有哪些? Linux命令的分类 内部命令 内部命令是指集成于 Shell 解释器程序内部的一些特殊指令,也称为内建指令.内部命令无须从硬盘中重新读