系统总结一波Linux下find命令,查找就是这么清晰

我欲只争朝夕
发布于 2023-10-24 11:11
浏览
0收藏

介绍

Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。

find命令的基本语法如下

find [路径] [选项] [操作]

常用选项

这里只演示一下常用的选项,更多用法可以查看帮助文档

man find

选项

含义

-name

根据文件名进行查找

-perm

根据文件权限进行查找

-prune

排除 查找目录

-user

根据文件属主查找

-group

根据文件属组查找

-mtime -n \

+n

-type

按照文件类型查找

-size -n \

+n

-mindepth n

从n级子目录开始搜索

-maxdepth n

最后搜索到n级子目录

-type选项

类型

解释

f

普通文件

d

目录

c

字符设备文件

b

块设备文件

l

链接文件

p

管道文件

搜索当前目录下的文件

find . -type f

搜索当前目录下的链接文件

find . -type l

-size选项

类型

解释

-n

大小小于n的文件

+n

大小大于n的文件

n

大小等于n的文件

常用的选项单位如下

单位

解释

b

for 512-byte blocks (this is the default if no suffix is used)

c

for bytes

w

for two-byte words

k

for Kilobytes (units of 1024 bytes)

M

for Megabytes (units of 1048576 bytes)

G

for Gigabytes (units of 1073741824 bytes)

查找/etc目录下小于1000字节的文件

find /etc -size -1000c

查找/etc目录下大于1M的文件

find /etc -size +1M

-mtime选项

类型

解释

-n

n天以内修改的文件

+n

n天以外修改的文件

n

正好n天修改的文件

查找etc目录下5天之内修改且以conf结尾的文件

find /etc -mtime -5 -name '*.conf'

查找etc目录下10天之前修改且属主为root的文件

find /etc -mtime +10 -user root

-mmin选项

类型

解释

-n

n分钟以内修改的文件

+n

n分钟以外修改的文件

查找/etc目录下30分钟之前修改的文件

find /etc/ -mmin +30

查找/etc目录下30分钟之内修改的目录

find /etc -mmin -30 -type d

-mindepth选项表示从n级子目录开始搜索假如/root/dir1的文件目录结构如下

tree /root/dir1
# 输出如下
/root/dir1
├── dir2
│   └── dir3
│       ├── dir4
│       │   └── file4
│       └── file3
└── file2

3 directories, 3 files

在/root/level1下的3级子目录开始搜索

find /root/dir1 -mindepth 3
# 输出如下
/root/dir1/dir2/dir3/file3
/root/dir1/dir2/dir3/dir4
/root/dir1/dir2/dir3/dir4/file4

-maxdepth选项表示最多搜索到n级子目录

find /root/dir1 -maxdepth 2
# 输出如下
/root/dir1
/root/dir1/dir2
/root/dir1/dir2/dir3
/root/dir1/file2

操作

-print 打印输出(默认输出,不加也行)

-exec 对搜索到的文件执行特定的操作,格式为-exec command {} ;

搜索/etc下的文件(非目录),文件名以conf结尾,且大于10k,然后将其删除

find /etc -type f -name '*.conf' -size +10k -exec rm -f {} \;

将/var/log目录下以log结尾的文件,且更改时间在7天以上的删除

find /var/log -name '*.log' -mtime +7 -exec rm -rf {} \;

搜索/etc下的文件(非目录),文件名以conf结尾,且大于10k,将其复制到/root/conf目录下

find /etc -type f  -name '*.conf' -size +10k -exec cp {} /root/conf \;


文章转载自公众号:Java识堂

分类
标签
已于2023-10-24 11:11:39修改
收藏
回复
举报
回复
    相关推荐