3

linux中 find的常规使用

 1 year ago
source link: https://blog.51cto.com/u_15148274/5514890
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

linux中 find的常规使用

原创

想剪个寸头 2022-07-26 15:27:19 ©著作权

文章标签 搜索 子目录 当前目录 linux find 文章分类 Linux 系统/运维 阅读数171

语法: find [路径] [参数]

注:如果不输入路径,查询当前目录!

在使用 -maxdepth 参数的时候,如果有多个选项,把 maxdepth 放到路径的后面,其他参数的前面,否则可能会出错。

-name 后面养成习惯加双引号,避免出错。

如果不指定文件的具体路径,可以写根目录 / ,扩大搜索范围。比如在搜索一个 inode 号的时候,毫无头绪,就可以使用根目录。

find 可以和正则表达式匹配一起使用 !取反,*通配符。

-name 文件名字

-iname 忽略文件名的大小写,匹配所有大小写字母

1.查找 /tmp 目录下名字为 abc开头的所有文件。

find /tmp -name “abc*”

注意:这里并不能使用 ^abc

2.查找tmp目录下包含abcde字母的文件,不区分大小

find /tmp -iname abcde

-type f文件,d目录,l连接文件,b块设备,c串行端口设备

1.查找所有的隐藏目录。

find . -type d -name “.*”

2.在根目录下查找所有的目录。

find / -type d -name “.*”

/dev/.mdadm

/dev/.udev

/tmp/.ICE-unix

-size 通过文件大小查找

-inum 查找 inode

find / -inum 141418

-user 指定属主,也可以使用 uid

-group 指定用户组,也可以使用 gid

1.搜索tmp目录下所属组group1,所属主user1的文件

find /tmp -type f -user user1 -group group1

-*time mtime 创建或更改时间;atime 访问时间;ctime文件inode号被修改。

-*min mmin ±n,大于小于 n 分钟

            -mtime +365 创建或更改时间,大于365天的

            -mtime -10  创建或更改时间,小于10天

            -atime +365 访问或读取时间,大于365天

            -atime -10  访问或读取时间,小于10天

1. 搜索 tmp 目录下,修改时间一年内的文件

find /tmp -type f -mtime -365

-not 查找不满足条件的文件,用在特定的条件之前

1.搜索目录下,修改时间一年内,不是文件的其他类型

find . -not -type f -mtime -365

2.搜索目录下,修改时间超过一年的并且大于100M的文件

find . -type f -not -mtime -365 -a -size +100M

3.列出tmp目录下一年内都没有改变的文件

find /tmp -type f ! -mtime -365

1.搜索tmp目录下以 a 开头并且以 c 结尾的文件

find /tmp -name “a*” -a -name “*c” -type f

2. 搜索 tmp 目录下,不是以 a 开头,并且大小超过100M的文件

find /tmp -not -name “a*” -a -name “*txt” -size +100M -tyep f

3.搜索当前目录下10天以前的文件,或者权限为644的的文件和目录

find . -type f -mtime +10 -o -perm 644

-mindepth 指定目录的开始深度

            -mindepth 0 不限制

            -mindepth 1 从当前目录及其内容开始

            -mindepth 2 从一级子目录内容开始,当前目录的文件和目录不再范围内

-maxdepth 指定目录的最大深度

            -maxdepth 0

            -maxdepth 1 只查目录本身及其内部文件,包括一级目录本身

            -maxdepth 2 目录内的文件,包括目录下的一级子目录及其文件

1.找出 tmp 目录下的所有一级子目录

find /tmp -maxdepth 1 -type d

2.在root目录下及其最大两层深度的子目录中,查找 passwd 文件

find /root -maxdepth 3 -name passwd

3.在第二层和第四层子目录之间查找 passwd 文件

find . -mindepth 3 -maxdepth 5 -name passwd

-perm 指定文件权限

        -perm  mode,匹配项必须严格匹配此权限。

        -perm -mode,匹配项必须不少于此权限。匹配大于此权限的文件。

        -perm /mode,匹配项中 任何一组包含要求权限中的任意一个 就可以,仅限于普通权限,相对于单独的 rwx 里面的任意一个权限,并非 user group others 654里面的 6 5 4 任意权限。如果权限使 644,转换为二进制 110 100 100, 那么找到的文件只需匹配到任意一个 1 即可,即 user 可读或可写、group 可读或可写、other 可读或可写,均可以匹配。

        -perm /mode(四位),和3位的数字权限规则一致,区别在于特殊权限和普通权限独立思考。

        -perm +mode,功能和/一样。

-path “…” -prune -o [其他参数] -print

     ... 代表排除指定的文件或者目录,其他均为固定写法。注意,如果在排除目录的时候,最后面不能有/符号,√ "/tmp/123"  ×"/tmp/123/"。

-empty 空文件,空目录,

-false 总是出错的文件

-fstype 指定文件类型查找,ext3 ext4


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK