Chinaunix

标题: find如何在一条命令里使用两个-size参数. [打印本页]

作者: catchernet    时间: 2009-08-30 20:06
标题: find如何在一条命令里使用两个-size参数.
大虾们好:
   
     问一个很弱的问题,比较要查找一个小于13K或大于16K的文件,如果在一条find中实现啊.

我尝试了了N久,不知道如何将两上size 在一条命令中使用,

find . -size -13k || -size +16K

find . \( -size -13k || -size +16K \)

这两种写法都不对,求正确写法.....
作者: emmoblin    时间: 2009-08-30 22:12
这个挺有意思的,
中间试试用-and 代替 ||
作者: marsaber    时间: 2009-08-30 22:26
这里应该用-or吧?
find . -size -13k -or -size +16k

k是小写的
作者: jiannma    时间: 2009-08-30 22:40
感觉不太对阿
下面是我的例子:
[majian@foo pdf]$ll -h
total 80K
-rw-rw-r-- 1 majian majian    0 Aug  8 20:08 test.aux
-rw-rw-r-- 1 majian majian  364 Aug  8 22:45 test_chinese.aux
-rw-rw-r-- 1 majian majian 9.9K Aug  8 22:45 test_chinese.log
-rw-rw-r-- 1 majian majian  27K Aug  8 22:45 test_chinese.pdf
-rw-rw-r-- 1 majian majian  519 Aug  8 22:13 test_chinese.tex
-rw-rw-r-- 1 majian majian    0 Aug  8 20:08 test.log
-rw-rw-r-- 1 majian majian  25K Aug  8 20:08 test.pdf
-rw-rw-r-- 1 majian majian  264 Aug  8 20:09 test.tex

我想找大于10k小于100k,我用了
[majian@foo pdf]$find . -size -100k  -or -size +10k
但结果怎么是:
.
./test_chinese.pdf
./test_chinese.aux
./test_chinese.tex
./test_chinese.log
./test.log
./test.pdf
./test.tex
./test.aux
You have new mail in /var/spool/mail/root
作者: Celinde    时间: 2009-08-31 01:59
用-and。

不过-size的统计文件大小的方式很讨厌.. 让人烦躁


  1. [root@RHEL4 report]# ls -l
  2. total 40
  3. -rw-r--r--  1 root root 4526 Aug 29 15:42 job2.data
  4. -rw-r--r--  1 root root 4239 Aug 29 12:00 job.data
  5. -rw-r--r--  1 root root  454 Aug 29 14:12 job.out
  6. -rw-r--r--  1 root root 2543 Aug 29 15:59 mail2.data
  7. -rwxr-xr-x  1 root root 1894 Aug 29 18:51 mailreport.sh
  8. -rwxr-xr-x  1 root root 1920 Aug 29 15:52 report.sh
  9. -rw-r--r--  1 root root 4014 Aug 29 16:10 site2.data
  10. -rwxr-xr-x  1 root root 2004 Aug 29 16:26 sitereport.sh
  11. [root@RHEL4 report]# find ./ -size +2048c -and -size -4096c -printf "%s\t%P\n"
  12. 4014    site2.data
  13. 2543    mail2.data
  14. [root@RHEL4 report]# find ./ -size +2k -and -size -4k -printf "%s\t%P\n"
  15. 2543    mail2.data
  16. [root@RHEL4 report]# find ./ -size +2k -and -size -5k -printf "%s\t%P\n"
  17. 4014    site2.data
  18. 2543    mail2.data
  19. [root@RHEL4 report]# find ./ -size +2k -and -size -5120c -printf "%s\t%P\n"
  20. 4239    job.data
  21. 4526    job2.data
  22. 4014    site2.data
  23. 2543    mail2.data
  24. [root@RHEL4 report]#

复制代码

作者: catchernet    时间: 2009-09-01 20:35
实验成功,
find . -type f \( -size -13k -o -size +16k \)
作者: marsaber    时间: 2009-09-02 09:46
标题: 回复 #5 Celinde 的帖子
小于13K或大于16K
还用and吗?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2