-
Notifications
You must be signed in to change notification settings - Fork 0
/
find命令
93 lines (57 loc) · 2.16 KB
/
find命令
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
find命令
find命令的工作方式:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。
find 命令的一般形式为;
find pathname -options [-print -exec -ok ...]
1.根据文件名或正则表达式匹配搜索
$ls
example.txt Example.txt file.txt
$ find . -iname "example*" -print #-iname 匹配名字,无视大小写
./example.txt
./Example.txt
$ls
new.txt some.jpg text.pdf
$ find . \( -name "*.txt" -o -name "*.pdf" \) -print #注意空格 find命令将两类文件看为一个整体
./text.pdf
./new.txt
$ find ~ -path "*slynux*" -print # -name总是用给定的文件名进行匹配,-path则将文件路径作为一个整体进行匹配。
2. 否定参数
$ ls
list.txt new.py new.txt next.jpg test.py
$ find . ! -name "*.txt" -print #! 匹配所有不以.txt结尾的文件名
./next.jpg
./test.py
./new.py
3.基于目录深度的搜索
-maxdepth参数指定最大深度 #当前目录为1
-mindepth参数指定最小深度
4.根据文件类型搜索
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
find . -type f -print
5. 根据文件时间进行搜索
-atime:用户最近一次访问文件的时间
-mtime:文件内容最后一次被修改的时间
-ctime:文件元数据(metadata,例如权限或所有权)最后一次改变的时间
time #单位是天
find . -type f -atime -7 -print #打印出在最近七天内被访问过的所有文件
find . -type f -atime 7 -print #打印出恰好在七天前被访问过的所有文件
find . -type f -atime +7 -print #打印出访问时间超过七天的所有文件
-amin #单位是分钟
-mmin
-cmin
-newer #我们可以指定一个用于比较时间戳的参考文件,然后找出比参考文件更新的(更长的修改时间)所有文件
find . -type f -newer file.txt -print
6.基于文件大小的搜索
find . -type f -size +2k #大于2kb的文件 -2 小于2kb的文件 2 等于2kb的文件
b--块(512字节)
c--字节
w--字(2字节)
k--千字节
M--兆字节
G--吉字节
7. 删除匹配的文件
find . -type f -name "*.swp" -delete