热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Shell编程中的常用工具

文件查找find命令语法格式find命令总结:常用选项:-name查找etc目录下以conf结尾的文件findetc-name*.conf-inam

文件查找 find 命令

语法格式

 

 

find命令总结:

常用选项:

-name 查找/etc目录下以conf结尾的文件 find /etc -name "*.conf"-iname 查找当前目录下文件名为aa的文件,不区分大小写 find . -iname aa-user 查找文件属主为hdfs的所有文件 find . -user hdfs-group 查找文件属主为yarn的所有文件 find . -group yarn-type 查找文件属组为yarn的所有文件 find . -group yarn

f 文件 find . -type fd 目录 find . -type dc 字符设备文件 find . -type cb 块设备文件 find . -type bl 链接文件 find . -type lp 管道文件 find . -type p

-size-n 大小小于n的文件+n 大小大于n的文件n 大小等于n的文件(用的少)

 

查找/etc/目录下小于10000字节的文件

find /etc -size -10000c

 

查找/etc目录下大于1M的文件

find /etc/ -size +1M

-mtime

  • -n n天以内修改的文件
  • +n n天以外修改的文件
  • n 正好等于n天修改的文件

 

查找/etc目录下5天以内修改且以conf结尾的文件

find /etc -mtime -5 -name '*.conf'

 

查找/etc目录下10天之前修改且属主为root的文件

find /etc -mtime +10 -user root

  

-mmin -n

  • n分钟以内修改的文件
  • +n n分钟以外修改的文件

查找/etc目录下30分钟之前修改的文件

find /etc -mmin +30

 

查找/etc目录下30分钟以内修改的目录

find /etc -mmin -30 -type d

  

-mindepth n 表示从n级子目录开始搜索

在/etc下的3级子目录开始搜索

find /etc -mindepth 3 -name '*.conf'

  

-maxdepth n 表示最多搜索到n级子目录

在/etc下搜索符号条件的文件,但最多搜索到2级子目录

find /etc -type f -name '*.conf' -size +10k -maxdepth 2

  

需要了解的选项:

-nouser 查找没有属主的文件

find . -type f -nouser

 

-nogroup 查找没有属组的文件

find . -type f -nogroup

 

-perm 根据文件权限查找

find . -perm 664

 

-prune 通常和-path一起使用,用于将特定目录排除在搜索条件之外

查找当前目录下所有普通文件,但排除test目录

find . -path /etc -prune -o -type f

  

查找当前目录下所有普通文件,但排除etc和opt目录

find . -path /etc -prune -o -path /opt -prune -o -type f

  

查找当前目录下所有普通文件,但排除etc和opt目录,但属主为hdfs

find . -path /etc -prune -o -path /opt -prune -o -type f -a -user hdfs

  

查找当前目录下所有普通文件,但排除etc和opt目录,但属主为hdfs,切文件大小必须大于500字节

find . -path ./etc -prune -o -path ./opt -prune -o -type f -a user hdfs -a -size +500c

  

-newer file1  查找比file1 新的文件

find /etc -newer a

  

操作:

  • -print 打印输出
  • -exec 对搜索到的文件执行特定的操作,格式为 -exec 'command' {} \;
  • -ok 和exec功能一样,只是每次操作都会给用户提示

例子1:搜索/etc下的文件(非目录),文件名以conf结尾,且大于10k,然后将其删除

find ./etc -type f -name "*.conf" -size +10k -exec rm -f {} \;

  

例子2:将/var/log目录下以log结尾的文件,且更改时间在7天以上的删除

find /var/log -name "*.log" -mtime +7 -exec rm -rf {} \;

  

例子3:搜索条件和例子1一样,只是不删除,而是将其拷贝到/root/conf目录下

find ./etc -size +10k -type f -name "*.conf" -exec cp {} /root/conf/ \;

  

逻辑运算符:

  • -a 与
  • -o 或
  • -not|! 非

查找当前目录下,属主不是hdfs的所有文件

find . -not -user hdfs | find . ! -user hdfs

 

查找当前目录下,属主属于hdfs,且大小大于300字节的文件

find . -type f -a -user hdfs -a -size +300c

  

查找当前目录下的属主为hdfs或者以xml结尾的普通文件

find . -type f -a \( -user hdfs -o -name '*.xml' \)

  

示例:

查找以.conf结尾的文件

find /etc -name '*.conf'

  

-name 区分大小写,iname忽略大小写

find ./ -iname 'aa'

查找文件

find ./ -type f

  

查找/etc/目录下大于1M的文件

find /etc -size +1M

 

查找3天内修改的文件

find /etc/ -mtime -3

 

查找5天内的.conf文件

find /etc -mtime -5 -name "*.conf"

 

查找30分钟内被修改的文件

find /etc -mmin -30

 

查找2级子目录查找文件

find . -mindepth 2 -type f

 

最深查找1级子目录的文件

find . -maxdepth 1 -type f

 

查找644权限的文件

find . -perm 644

 

排除 test1/nginx 目录后的文件

find . -path ./test1/nginx -prune -o -type f

 

查找排除 test_1 和 test1 以后的文件

find . -path ./test_1 -prune -o -path ./test1 -prune -o -type f

  

查找当前目录下比123 新的文件

find ./ -newer 123

 

将etc目录拷贝到当前目录,查找etc目录中的.conf文件并删除

cp -r /etc ./
find ./etc -name '*.conf' -exec rm -f {} \;find ./etc -name '*.conf'

  

将etc目录下大于1m的文件拷贝到test_5目录下

find ./etc/ -size +1M

  

-ok 提示用户是否执行操作

find ./ -type f -ok rm -f {} \;

  

 

find、locate、whereis和which总结及适用场景分析

 

locate 命令 

update db 命令 

 

find是精确查找

find /etc -name 'my.cnf'

 

locate部分匹配

locate my.cnf

 

即时创建的文件用locate是查找不到的,因为系统有计划任务定时更新mlocate.db文件,如果不包含是查找不到文件的

touch abc.txt
touch def.txt# 查询刚刚创建的发现查找不到
locate abc.txt
locate def.txt# 更新数据库就可以查找到文件了
ll -h /var/lib/mlocate/mlocate.db
updatedb
locate abc.txt
locate def.txt

  

 

whereis命令

 

所有的文件都列出来

whereis mysql

 

只查找二进制文件

whereis -b mysql

 

 

只查找man文档

whereis -m mysql

  

which命令

 

which mysql

  

  

各命令使用场景推荐

  • find 查找某一类文件,比如文件名部分一致 功能强大,速度慢
  • locate 只能查找单个文件 功能单一,速度快
  • whereis 查找程序的可执行文件、帮助文档等 不常用
  • which 只查找程序的可执行文件 常用于查找程序的绝对路径

 

 

 

  

 

转:https://www.cnblogs.com/crazymagic/p/11071875.html



推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 对于开源的东东,尤其是刚出来不久,我认为最好的学习方式就是能够看源代码和doc,測试它的样例为了方便查看源代码,关联导入源代 ... [详细]
  • 伸缩性|发生_分布式文件系统设计,该从哪些方面考虑?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了分布式文件系统设计,该从哪些方面考虑?相关的知识,希望对你有一定的参考价值。点击上方关注“ ... [详细]
author-avatar
纤妍内衣天旺店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有