老男孩教育每日一题-第110天-find命令-size参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩教育每日一题-第110天-find命令-size参数相关的知识,希望对你有一定的参考价值。

老男孩教育每日一题-第110天-find命令-size参数
1、查找当前目录下以log结尾的大于50k小于2M的普通文件
2、查找当前目录下以log结尾的小于50k大于2M的普通文件
以上两个问题有什么不同?

参考答案:

测试环境:

[[email protected] tmp]# pwd
/root/tmp
[[email protected] tmp]# ll -h
total 7.4M
-rw-r--r-- 1 root root   262 Jul 30 15:45 a.log
-rw-r--r-- 1 root root   262 Jul 30 15:46 a.txt
-rw-r--r-- 1 root root  626K Jul 30 15:52 b.log
-rw-r--r-- 1 root root  626K Jul 30 15:52 b.txt
crw-r--r-- 1 root root 20, 5 Jul 30 16:13 ccc
-rw-r--r-- 1 root root  2.5M Jul 30 15:55 c.log
-rw-r--r-- 1 root root  2.5M Jul 30 15:55 c.txt
-rw-r--r-- 1 root root  628K Jul 30 16:03 d.log
lrwxrwxrwx 1 root root     5 Jul 30 16:07 d_slink.txt -> d.txt
-rw-r--r-- 1 root root  628K Jul 30 16:03 d.txt
prw-r--r-- 1 root root     0 Jul 30 16:20 pip.log
brw-r--r-- 1 root root 16, 8 Jul 30 16:11 sdb.log
srwxr-xr-x 1 root root     0 Jul 30 16:10 s.log
drwxr-xr-x 2 root root  4.0K Jul 30 16:06 test.log

查找当前目录下以log结尾的大于50k小于2M的普通文件

[[email protected] tmp]# find -type f -name "*.log" -size -2M  -size +50k
./d.log
./b.log

问题1比较简单,因为所有的查找条件都是与的逻辑

问题2查找条件中小于50k大于2M是或的逻辑,正常写出来有问题

先看两个错误做法

查找当前目录下以log结尾的小于50k大于2M的普通文件

[[email protected] tmp]# find -type f -name "*.log" -size +2M -size -50k   ###此处逻辑错误,找不到文件
[[email protected] tmp]# find -type f -name "*.log" -size +2M -o -size -50k  ###与或逻辑放在一起有问题,找到了不符合条件的文件
.
./c.log
./sdb.log
./s.log
./d_slink.txt
./a.log
./test.log
./pip.log
./a.txt
./ccc

与运算和或运算优先级不同,所以分开两条命令查找

[[email protected] tmp]# find -type f -name "*.log" -size +2M
./c.log
[[email protected] tmp]# find -type f -name "*.log" -size -50k
./a.log

以上两条命令合并(此处类似乘法分配率)

[[email protected] tmp]# find -type f -name "*.log" \( -size +2M -o -size -50k \)
./c.log
./a.log

备注

今天是每日一题陪伴大家的第110天期待你的进步

对于题目和答案的任何疑问,请在博客评论区留言
往期题目索引

http://lidao.blog.51cto.com/3388056/1914205


本文出自 “李导的博客” 博客,请务必保留此出处http://lidao.blog.51cto.com/3388056/1959484

以上是关于老男孩教育每日一题-第110天-find命令-size参数的主要内容,如果未能解决你的问题,请参考以下文章

老男孩教育每日一题-第65天-编写脚本,取出/tmp目录下面的所有文件的第一行

​老男孩教育每日一题-第64天 -sed命令闯关

​老男孩教育每日一题-第102天-如何找出/usr/local 下面所有shell脚本文件,并设置执行权限?

​老男孩教育每日一题-第73天 -基础命令点:可恶的^C

​老男孩教育每日一题-第62天-统计/var/log/下所有文件个数

​老男孩教育每日一题-第79天-命令风暴:打印出001 002 003 这样的格式的数字