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

扩展阅读

results matching ""

    No results matching ""