Linux find命令常用总结

2020-08-21  本文已影响0人  皮儿吃屁

简介

find 命令的基本结构如下:

find [paths] [expression] [actions]

常用参数汇总

参数 解析
-name pattern 搜索时使用 pattern 对文件名进行匹配
-atime n[smhdw] 距离文件上次被访问时的时间间隔
-ctime n[smhdw] 距离文件创建时的时间间隔
-delete 删除检索到的文件
-depth n 检索深度为 n 的文件,即位于指定目录以下 n 层的文件
-empty 检索空文件或空目录
-fstype type 指定文件所在的文件系统的类型
-group gname 指定文件的属组
-iname pattern 同 -name,忽略大小写
-ipath pattern 同 -path,忽略大小写
-ls 打印搜索到的文件的详细信息
-maxdepth n 指定递归的最大层数为 n
-mtime n[smhdw] 距离文件上次发生变更时的时间间隔
-path pattern 搜索时使用 pattern 对文件路径进行匹配
-perm mode 根据文件权限搜索
-size n[ckMGTP] 根据文件大小搜索
-type t 根据文件类型搜索
-user uname 指定文件的属主

常用命令

1、根据文件名检索

find /usr -name '*.txt' 

查找 /usr 目录下所有文件名以 .txt 结尾的文件

find /usr -name '????'

查找 /usr 目录下所有文件名刚好为 4 个字符的文件
如查找 /usr 下所有文件名以 .txt 结尾的文件或目录,且该文件的父目录必须是 src。可以使用以下命令:

find /usr -path '*/src/*.txt'

2、根据文件类型检索

find /usr -type d -name 'python*' 

检索 /usr 下所有文件名以 python 开头的目录
3、根据时间日期进行检索
与此对应的是 find 命令中的 -mtime,-atime 和 -ctime 三个选项。

这三个选项的使用遵循以下示例中的规则:

find /usr -type f -mtime 2 

检索 /usr 下两天前被修改过的文件
如果觉得 -mtime 等选项以天为单位时间有点长,还可以使用 -mmin,-amin,-cmin 三个选项:

find /usr -type f -mtime +50 -mtime -100 

检索 /usr 下 50 到 100 天之前修改过的文件

find /usr -type f -mtime 2 -amin 5 

检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件
4、根据大小检索
c:字节
k:Kb
M:Mb
G:Gb

find / -size +1G 

检索文件大小高于 1 GB 的文件
5、其它

find ~ -type d -empty 

检索用户主目录下所有的空目录

find /usr -type f ! -name '*.txt'

检索 /usr 下所有文件名不以 .txt 为后缀的文件

find / -type f -user dayu

检索根目录下所有属主为 dayu 的文件

find /usr -perm u=rwx,g=rx,o=rx

检索 /usr 目录下权限为 rwxr-xr-x 的文件

find / -maxdepth 3 

搜索时向下递归的层数最大为 3

对搜索结果执行命令

find ~ -type d -empty -delete

删除 home 目录下所有的空目录

find ~ -type f -name '*.mp3' -exec cp {} /dayu ';'

将 home 目录下所有的 MP3 音频文件复制到指定目录
其中的大括号({})作为检索到的文件的 占位符 ,而分号( ;)作为命令结束的标志。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来。
每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的 {},然后执行 -exec 后面的命令一次。

find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ';'

将用户主目录下所有的 MP3 文件添加到压缩包 music.tar.gz 中

find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +

+符号,先让 find 命令检索出所有符合条件的音频文件,再将得到的文件列表传递给后面的压缩命令。

find / -type file -size +1G -ls 

浏览所有 1G 以上大小的文件的详细信息

上一篇 下一篇

猜你喜欢

热点阅读