格式
find /data -type f
find /data -type f -name "name"
[root@oldboyedu ~]# find ./ -type f # 查找当前目录 并且显示隐藏文件
默认显示目录及目录以下所有符合的文件
按照名称查找
[root@oldboyedu dir]# find ./ -type f -name "1.txt"
......
* 表示匹配任意的字符
匹配以.txt结尾的文件
[root@oldboyedu dir]# find ./ -type f -name "*.txt
......
[root@oldboyedu dir]# find ./ -type f -name "[1-3].txt"
......
匹配以.bak结尾的文件
[root@oldboyedu dir]# find ./ -type f -name "*.bak"
......
?代表任意单个字符 ---> 通配符匹配 大部分命令都支持
[root@oldboyedu dir]# find ./ -type f -name "1.t?t"
....
拓展 :
找出最长的一行的那个个数
[root@oldboyedu dir]# cat 1.txt
123456
123456789
12
[root@oldboyedu dir]# cat 1.txt|wc -L
9
查看brt-action-analyze-vmcore的个数
[root@oldboyedu dir]# echo abrt-action-analyze-vmcore|wc -L
26
查看password的每个单词出现的个数
[root@oldboyedu dir]# cat /etc/passwd|sed -r 's#[:\]# #g'|xargs -n1|sort |uniq -c|sort -rn
按照大小查找
-size k M G
查找大于90M的文件
[root@oldboyedu ~]# find ./ -type f -size +90M
......
查找小于90M的文件
[root@oldboyedu ~]# find ./ -type f -size -90M
......
查找大于80并且小于90的文件
-and 并且
-or 或者
[root@oldboyedu ~]# find ./ -type f -size +80M -and -size -90M # find默认就是并且关系
|
| 所以 -and 可省略
↓
[root@oldboyedu ~]# find ./ -type f -size +80M -size -90M
......
[root@oldboyedu ~]# find ./ -type f -size +80M -or -size +90M
......
按照深度等级查找
[root@oldboyedu ~]# find ./ -maxdepth 1 -size +50M # 查找1及目录大于50M的文件
./hosts
[root@oldboyedu ~]# find ./ -maxdepth 2 -size +50M # 查找2及目录大于50M的文件
./hosts
./dir/all.hosts
按照修改时间查找
stat 查看文件的详细信息
-mtime 按照文件的修改时间查找
-atime 按照文件的访问时间查找
-ctime 按照文件属性的改变时间查找
mtime 后面的值
-1 按照24小时内 1天之内的时间
1
Access: # 查看文件时间 cat less vim 修改文件后的第一次查看时间会改变 不修改 不会变
Modify: # 修改文件时间 vi vim echo
Change: # 属性修改时间 权限 大小 硬链接数 属主 属组
按目录大小
文件的大小是不会影响目录的大小
目录中存放着下级的所有的文件名和目录名
文件越多 目录越大 小文件过多 inode不够用
如何找小文件 目录越大 小文件越多
ind ./ -type d -size +1M
如果过长可用下面
find dir/ -type f -name "*.txt"|xargs rm
du 查看当前目录下文件大小
[root@oldboyedu ~]# du -h
0 ./.pki/nssdb
0 ./.pki
0 ./dir/oldboy
651M ./dir
731M .
[root@oldboyedu ~]# du -h dir/
0 dir/oldboy
651M dir/
[root@oldboyedu ~]# du -h dir/*
651M dir/all.hosts
0 dir/oldboy
0 dir/oldboy.bak
[root@oldboyedu ~]# du -h /mnt
9.8G /mnt
[root@oldboyedu ~]# du -h /mnt/*
9.8G /mnt/10g.txt
find查找到的文件 如何cp rm mv
方法1: 把前面的内容 -i插入 到后面
[root@oldboyedu ~]# find ./ -type f -name "test.sh"|xargs -i cp {} /opt
方法2: 把前面的内容 cp复制 到后面
[root@oldboyedu ~]# find ./ -type f -name "test.sh" -exec cp {} /tmp \; ————> ;在这里㓟特殊含义 用\转义
方法3: 用反引号 把执行的命令留在原地再供其他命令使用
[root@oldboyedu ~]# cp `find ./ -type f -name "test.sh"` /etc/
rm mv按以上套用即可
find中别名失效,所以rm不会提示交互信息