Linux的find命令

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

Linux的find命令主要用来查找系统中的文件。命令格式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
find命令的格式: find  [-path ..] -options [-print -exec -ok]
path:要查找的目录路径。
~ 表示$HOME目录
. 表示当前目录
/ 表示根目录
-print :表示将结果输出到标准输出
-exec :对匹配的文件执行该参数所给出的shell命令。形式为 command {} \; ,注意{}与\; 之间有空格
-ok :与-exec作用相同,区别在于,在执行命令之前,都会给出提示,让用户确认是否执行

options常用的有下选项:
-name 按照名字查找
-perm 安装权限查找
-prune 不再当前指定的目录下查找
-user 文件属主来查找
-group 所属组来查找
-nogroup 查找无有效所属组的文件
-nouser 查找无有效属主的文件
-type 按照文件类型查找
  • Demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 当前路径下查找名为source_code的文件或文件夹(递归子文件夹)
$ find . -name source_code
./source_code

# 查找当前路径下的txt文件
$ find . -name "*.txt"
./crontab.txt

# 根据文件权限查找,查找权限为777的文件
$ find . -perm 777
./test.sh

# 根据类型查找,查找符号链接
$ find . -type l
./Chapter14/multem

# 根据修改时间查找
$ find . -mtime 7 -type f
./model-zoo/.DS_Store
./model-zoo/vgg19/train_val.prototxt
./model-zoo/vgg19/VGG_ILSVRC_19_layers.caffemodel

# 根据文件大小查找
$ find . -size +1k -type f
./.DS_Store
./Chapter14/.DS_Store
./Chapter15/.DS_Store
./Chapter16/.DS_Store
./Chapter17/.DS_Store
./filename.txt

# 查找文件并删除
$ find . -size +1k -type f -ok rm {} \;
"rm ./.DS_Store"? y
"rm ./Chapter14/.DS_Store"? y
"rm ./Chapter15/.DS_Store"? y
"rm ./Chapter16/.DS_Store"? y
"rm ./Chapter17/.DS_Store"? y
"rm ./filename.txt"? n
如果有收获,可以请我喝杯咖啡!