精选文章 find 用法汇总

find 用法汇总

作者:weixin_33985679 时间: 2021-02-07 02:39:46
weixin_33985679 2021-02-07 02:39:46
【摘要】本文是本人在工作中的一些find总结,另外一些不常用的find参数汇总,
留个记号以便以后记不住的时候翻一翻
 
1:查找当前目录下的文件
 
find . -type f -exec ls -l {  } \; 
2:查找当前目录更改日期为5天前的文件,一个+;一个-,分别表示mtime时间为5天前和5天之内
 
各种参考的使用方式中有用+号,-号,不带符号的用法,那么这里有什么区别
 
...

本文是本人在工作中的一些find总结,另外一些不常用的find参数汇总,

留个记号以便以后记不住的时候翻一翻

 

1:查找当前目录下的文件

 

  1. find . -type f -exec ls -l {  } \; 

2:查找当前目录更改日期为5天前的文件,一个+;一个-,分别表示mtime时间为5天前和5天之内

 

各种参考的使用方式中有用+号,-号,不带符号的用法,那么这里有什么区别
 
注意这里的n,如果n为带有+号的值,意思为删除n天前所有的文件,比如n=+1且今天是15号,那么删除14号以前的数据,不包括14号,如 果是负号(n=-1)则为删除一天内的文件,比如今天15号,那么删除15号的数据,如果是(n=-2)则代表删除一天前到今天的所有数据,比如今天15 号,那么从14号开始删除。如果不带有符号,那么则删除指定前n天中这一天的数据,比如(n=1)且今天是15号,则删除14号这一天所有数据。  www.2cto.com  
注意这里的一天是指当前系统时间算起的,而不是0-24小时算一天
  1. [root@localhost tmp]# find . -type f -mtime +5  
  2. ./.X0-lock 
  3. [root@localhost tmp]# stat .X0-lock  
  4.   File: ※.X0-lock§ 
  5.   Size: 11 Blocks: 8 IO Block: 4096   珨啜恅璃 
  6. Device: 803h/2051d  Inode: 22839308 Links: 1 
  7. Access: (0444/-r--r--r--)  Uid: ( 0/ root)   Gid: ( 0/ root) 
  8. Access: 2012-09-25 09:02:36.000000000 +0800 
  9. Modify: 2012-09-25 09:02:36.000000000 +0800 
  10. Change: 2012-09-25 09:02:36.000000000 +0800 
  11. [root@localhost tmp]#  
  12. [root@localhost tmp]# find . -type f -mtime -5  
  13. ./test.txt 
  14. ./test.sh 
  15. ./crontab.txt 
  16. ./test/index.html 
  17. ./0 
  18. [root@localhost tmp]# stat test.txt  
  19.   File: ※test.txt§ 
  20.   Size: 74 Blocks: 8 IO Block: 4096   珨啜恅璃 
  21. Device: 803h/2051d  Inode: 22839313 Links: 1 
  22. Access: (0644/-rw-r--r--)  Uid: ( 0/ root)   Gid: ( 0/ root) 
  23. Access: 2012-10-24 16:43:57.000000000 +0800 
  24. Modify: 2012-10-24 16:44:02.000000000 +0800 
  25. Change: 2012-10-24 16:44:02.000000000 +0800 

3:perm为权限,

 

  1. find . -type f -perm 644 -exec ls -l {  } \; 

另外find 查找后 都可以交给exec或者 xargs这东西就看你喜好了

size

其中+100k为大于100k -200k为小于200k a为and o为or的 意思

那么第一行的命令意思就是查找当前目录为100k到200k之间的文件并且交给exec ls -lh 打印出来

第二行命令的意思就是大于100k或者小于200k的文件打印出来,个人觉得没意思

  1. [root@localhost ~]# find . -type f -size +100k -a -size -200k  -exec ls -lh {} \; 
  2. -rw-r--r-- 1 root root 157K 2006-02-13 ./iftop-0.17.tar.gz 
  3. -rw-r--r-- 1 root root 199K 2011-03-28 ./.scim/pinyin/pinyin_table 
  4. -rw------- 1 root root 188K 2011-03-28 ./.gstreamer-0.10/registry.x86_64.bin 
  5. [root@localhost ~]#  
  6.  find . -type f -size +100k -o -size -200k  -exec ls -lh {} \; 

 

  1. 、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。 
  2.  
  3. 该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令 
  4.  
  5. $ find . -name "admin.log[0-9][0-9][0-9]" -atime -7  -ok 
  6. rm {  } \; 
  7. < rm ... ./admin.log001 > ? n 
  8. < rm ... ./admin.log002 > ? n 
  9. < rm ... ./admin.log042 > ? n 
  10. < rm ... ./admin.log942 > ? n 

xargs

 

  1. find 查找文件并且交给file 查看文件类型 
  2. [root@localhost ~]# find . -type f -print | xargs file 
  3. ./.nautilus/metafiles/x-nautilus-desktop:%2F%2F%2F.xml: XML 1.0 document text 
  4. ./.nautilus/savedqkzcp7: XML 1.0 document text 
  5. ./.cshrc: ASCII text 
  6. ./b.txt: empty 
  7. ./6qu.txt: UTF-8 Unicode text 
  8. ./mbox: UTF-8 Unicode mail text 
  9. ./22.txt: ASCII text 
  10. ./1.sh: Bourne-Again shell script text executable 
  11. ./root: gzip compressed data, from Unix, last modified: Wed Sep 28 17:14:43 2011, max compression 
  12. ./idctest/idctest_ct.20110423-2000: ASCII text 
  13. ./idctest/idctest_cnc.20110510-2000: ASCII text 
  14. ./idctest/idctest_ct.20110511-1400: ASCII text 
  15. ./idctest/idctest_ct.20110421-1400: ASCII text 
  16. ./idctest/idctest_ct.20110427-0800: ASCII text 
  17. ./idctest/idctest_cnc.20110505-1400: ASCII text 
  18. ./idctest/idctest_cnc.20110503-0800: ASCII text 
  19. ./idctest/idctest_cnc.20110423-0800: ASCII text 
  20. ./idctest/idctest_cnc.20110516-0800: ASCII text 

忽略某个目录

如果不想在某个目录查找可以忽略掉

find [-path ..] [expression] 在路径列表的后面的是表达式
-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。
这个表达式组合特例可以用伪码写为

这个表达式组合特例可以用伪码写为

if -path "/usr/sam"  then
-prune
else
-print

  1. [root@localhost tmp]# ls test 
  2. index.html 
  3. [root@localhost tmp]# find -name "index.html" -path test -prune   
  4. [root@localhost tmp]# find -name "index.html" -path test -prune -o -print
    .
    ./.X0-lock
    ./mapping-root
    ./scim-panel-socket:0-root
    ./test.txt
    ./test.sh
    ./.ICE-unix
    ./.X11-unix
    ./.X11-unix/X0
    ./crontab.txt
    ./.gdm_socket
    ./test
    ./test/index.html
    ./.font-unix
    ./.font-unix/fs7100
    ./0

文件宿主查找

 

  1. [root@localhost tmp]# find . -user apache  -exec ls -lh {} \; 
  2. 总计 8.0K 
  3. -rw-r--r-- 1 apache root 5.4K 10-24 02:00 index.html 
  4. -rw-r--r-- 1 apache root 5.4K 10-24 02:00 ./test/index.html 

 

转载于:https://blog.51cto.com/fghjk/1035615

勿删,copyright占位
您找到想要的结果了吗?
find 用法汇总
提交成功!非常感谢您的反馈,我们会继续努力做到更好
分享文章到微博
分享文章到朋友圈

上一篇:linux安全--ssh

下一篇:如何编写高质量的代码四 - 代码优化之loop

您可能感兴趣

  • Oracle中用户profile的用法

    可以通过使用profile文件对用户的属性进行定义,比如为product用户建立一个profile文件 create profile product_profile limit SESSIONS_PER_USER 1; ——设置用户只能建立一个 session的profile alter user product profile product...

  • python pydoc-文档生成工具(汇总tcy)

    pydoc-文档生成工具   2018/9/8   ------------------------------------------------------------------------------ 1.1.用途: 是python自带的一个文档生成工具,使用pydoc可以很方便的查看类和方法结构 python中pydoc模块可以从...

  • java中synchronized用法

    synchronized的一个简单例子 public class TextThread { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 TxtThread tt = new TxtThread(); new Thre...

  • SharedPreferences 的用法

    SharedPreferences存储类效率分析 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、...

  • PHP--isset()和unset()函数的用法

    isset (PHP 3, PHP 4, PHP 5 )isset -- 检测变量是否设置 描述 bool isset ( mixed var [, mixed var [, ...

  • oracle自动汇总函数rollup和club及grouping set的用法

    Oracle的group by除了基本用法以外,还有3种扩展用法,分别是rollup、cube、grouping sets。三种函数都能对分组列实现自动汇总。 如果是Group by ROLLUP(A,B,C)的话,roll up的意思是“卷起”,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)...

  • SVN中的Trunk、Tag、Brance的用法

    在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆。在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。至于何时用tag,何时用branch,完全由人主观的根据规范和需要来选择,而不是强制的(比如cvs)。一般情况下,tag,是用来做一个milestone的,不管是不是re...

  • sqlDataAdapter的FillSchema用法

    FillSchema是用来向DataTable中填入详细的元数据信息的,例如(column names, primary key, constraints等),但不填入数据。 Fill主要是用来填入数据的,它在缺省情况下只填入少量必要的元数据信息,例如(column names, data types)。  所以,一般先用FillSchema来填入详...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。
find 用法汇总介绍:华为云为您免费提供find 用法汇总在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多find 用法汇总的相关内容。| 移动地址: find 用法汇总 | 写博客