Files
knowledge-kit/Chapter7 - Geek Talk/7.1.md
2020-02-25 17:46:51 +08:00

149 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 命令行文件查找
> 在日常中find的使用频率很高熟练掌握对提供工作效率很有帮助。
语法:
```
find(选项)(参数)
```
1、列出当前目录以及目录下的所有文件
```
find .
```
2、找到当前目录下名字为 11.png 的文件
```
find . -name "11.png"
```
3、找到当前目录下所有的 jpg 文件
```
find . -name "*.jpg"
```
4、找到当前目录下的 jpg 文件和 png 文件
```
find . -name "*.jpg" -o -name "*.png"
```
5、找到当前目录下不是以 png 结尾的文件
```
find . ! -nam "*.png"
```
6、根据正则表达式查找
比如:查找当前目录下,文件名都是数字的 png 文件
```
find . -regex "\./*[0-9]+\.png"
```
7、根据路径查找
找到当前目录下路径中包含 swj 的文件/路径
```
find . -path "*swj*"
```
8、根据文件类型查找
查找当前目录下,路径包含 swj 的文件
```
find . -type f -path "*swj*"
```
9、限制搜索深度
查找当前目录下所有的 png不包括字目录
```
find . -maxdepth 1 -name "*.png"
```
相应的, mindepth 也是选项
```
find . -mindepth 2 -name "*.png"
```
10、根据文件大小
通过 -size 来过滤文件大小,支持的单位如下
* b - 块512字节
* c - 字节
* w - 字 2字节
* k - 千字节
* M - 兆字节
* G - 吉字节
找出当前目录下文件大小超过 100M 的文件
```
find . -type f -size +100M
find ./ -size +100MB
```
11、根据访问/修改/变化时间
* 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间
* 修改时间 -mtime/天, -mmin/分钟): 文件最后一次修改时间
* 变化时间 -ctime/天, -cmin/分钟):文件数据元(例如权限的过)最后一次修改时间
找出 1天内被修改过的文件
```
find . -type f -mtime -1
```
找出最近1周内被访问过的文件
```
find . -type f -atime -7
```
12、根据权限
通过 -perm 来实现
找出当前目录下权限为777的文件
```
find . -type f -perm 777
```
找出当前目录下权限不是644的php文件
```
find . -type f -name "*.php" ! -perm 644
```
13、根据文件拥有者
找出文件拥有者为 root 的文件
```
find . -type f -user root
```
找出文件所在群组为 root 的文件
```
find . -type f -group root
```