Linux find 命令大全

find 含义: 顾名思义,是从来查找满足条件的内容。 从指定目录,递归的查找满足条件的内容。

格式: find [查询目录] [参数] [匹配方式]

  1. 文件操作:

            -name : 查找文件名  ( find . -name "*.txt" )  -- 查询当前目录及子目录下,已txt结尾的文件

            -type : 查找文件的类型

                     f :普通文件,如txt,sh等 ( find . -type f ) -- 查询当前目录及子目录下,普通文件
                     d :目录
                     b :块设备文件
                     c :字符设备文件
                     p :管道文件
                     l :链接文件

      2. 用户权限

          -perm :用户权限permission,常用3位数据(4:read,2:write,1:execute),如744(读写执行,读,读),创建人拥有所有权限,创建人所属的组有读权限,其他人有读权限
          -user / -nouser :按文件属主查询 / 查找无有效属主的文件
          -group / -nogroup :按文件属组查询 / 查找无有效属组的文件

      3. 时间选项

         -atime / -amin N :最近访问过的文件(access),time单位是天(day), min单位是分钟(min). 若数字前"+",表示N段时间前(-atime +1 表示一天之前);若数字前"-",表示N段时间内(-atime 11 表示最近一天之内)
         -ctime / -cmin N :最近状态改变过的文件(change),一般值权限修改,chmod,chgrp等
         -mtime / -mmin N :最近修改过的文件(modify),指文件内容修改
         通过命令: stat file ,可以查看详情 ,如: stat kimbo_test.sh

      4. 路径

         -path 给出文件路径,可在路径中查询

         -prune 表示要忽略的目录

xargs :与管道连用,对匹配的文件执行后续操作。每次只获取一部分文件,先处理,然后在下一批,以此下去。

#!/bin/bash

# 查询文件名是txt的文件,并显示
find /home/test/ -name "*.txt" |xargs ls -l

# 查询文件名是txt的文件,并删除
find /home/test/ -name "*.txt" |xargs rm -fr

例1: 查找最近修改的文件

find . -name "*.sh" -mtime -1  #time 单位是天,最近一天更新的文件

find . -name "*.sh"  -mmin -60 |xargs ls -l  #min单位是分钟,最近1小时更新的文件
原文地址:https://www.cnblogs.com/kimbo/p/7001942.html