Find 命令
Find命令是一个常用的搜索命令,可以找到任何你想找到的文件.
基本语法:find [pathnames] [conditions]
按照文件名查找
➤ find . -name '*py*' #支持正则表达式
./hello-world.py
./49.pyc
./helloword.py
./helloword.pyc
./49-2.py
./49.py
按文件大小查找
➤ find . -type f -size +200 #默认是KB,也可以改成100M或者1G
./kis.tar.bz2
./kismet/Kismet-20151220-13-28-40-1.pcapdump
./kismet/Kismet-20151220-13-28-40-1.netxml
./kismet/Kismet-20151220-13-28-40-1.nettxt
./kismet.tar.gz
./system.map
-type 指定文件类型
type | 文件类型 |
---|---|
f | 普通文件 |
d | 目录文件 |
b | 随机存储的设备文件,如硬盘,光盘等存储设备 |
c | 持续输入的设备文件,如鼠标,键盘 |
p | 有名管道 |
l | 链接文件(link) |
s | socket文件 |
按修改时间查找
查找60天之前修改过的文件
➤ find . -mtime +60
./test.php
➤ ls -l test.php
-rw-rw-r-- 1 mr mr 0 12月 12 2001 test.php #我之前用touch修改过它
查找到了文件就删除
find / -type f -name *.tar.gz -size +100M -exec rm -f {} \;
来我们详细说下这条命令, 首先是一个-type
, 指定了文件类型, 然后跟着一个-name
, 告诉find要找什么文件, 再接着是一个size,规定了要找的文件的大小, 最后的 -exec
是执行某项命令, 命令是rm -rf
, 参数是 {}
, 这个{}
是啥意思? 它代表的就是find查找到的文件, 最后的\;
是告诉find, 这条语句已经结束了,后面的事儿就不用它管了.
其实上面的语句完全可以用另一个参数来代替, -delete
参数.
完整的命令如下:find / -type f -name *.tar.gz -size +100M -delete