zoukankan      html  css  js  c++  java
  • Linux find,grep 命令

    使用实验楼Linux环境开发,部分内容有所参考,link:https://www.shiyanlou.com/

    概述:

    find: 在目录中搜索文件,它的使用权限是所有用户

    命令格式: find [路径] [参数] [文件名]

    grep: 在指定文件中搜索特定的内容,并将含有这些内容的行标准输出

    命令格式:grep [参数] [文件名]

    find 在平时使用中,一般要灵活搭配 ”|“,即管道,看如下命令:

    这个命令是统计 /home/shiyanlou 下的普通文件个数。

    其中用到了 find 命令的 -type 参数,即查找某一类型的文件,f 指的是普通文件。

    grep 在平时使用中,要注意理解正则表达式。关于正则表达式,可以看看这篇文章: https://blog.csdn.net/gexiaobaohelloworld/article/details/9147365


    1. find 命令:


    文件类型

    描述

    b

    块设备文件

    c

    字符设备文件

    d

    目录

    f

    普通文件

    l

    符号链接

    根据文件权限查找文件,使用-perm 选项。所有者使用-user 选项

    ex:

    查找 /home 下权限为 777 的普通文件。

    查找 /home 下所有者为 root 的普通文件

    操作符

    描述

    -and

    测试两边的条件都为真,可以简写为-a

    -not

    后面的测试条件为假,可以简写为 !

    -or

    测试条件为两边之一,可以简写为-o

    ()

    多个测试条件下,控制优先级

    查找 /home 下 所有者不是 root 并且权限为 777 的普通文件。其中 是转义字符


    查找当前目录下文件名为 "*.txt"的文件,并显示其详细信息。

    -exec 是 find 命令对找到的文件执行的动作,这个动作就是对找到的文件执行命令,上面的命令就是 ls -l {}。在这里说明一下{}和;,{}其实它就是一个占位符,在 find 命令的执行过程中会不断地替换成当前找到的文件,相当于”ls -l 找到的文件”。而;是-exec 的命令结束标记,因为规定-exec 后面的命令必须以;结束,但;在 shell 中有特殊含义,必须要转义,所以写成;。

    默认下,-exec 后面只能使用单个命令,如果想要多个命令,可以将多个命令写入脚本文件中,然后在-exec 中使用这个脚本。

    ex:现在主目录下有如下文件,要把所有以 .sh 结尾的拷贝到 dir2 中

    编写如下命令:


    2. grep命令:


    ex:将/etc/passwd 文件中没有出现 root 和 nologin 的行取出来:


    ex:统计 /home 中普通文件的个数、目录的个数、链接文件的个数。


    部分正则表达式在 grep 中的应用请看:https://www.cnblogs.com/xiaouisme/archive/2012/11/09/2762543.html

    3.综合示例:

    编写一个脚本名称为backup.sh,将第二个位置参数及其以后各参数所指定目录中的以.c.sh结尾的,且文件大小不为0的文件复制到第一个位置参数所指定的目录中。

    test 命令用法: http://man.linuxde.net/test

  • 相关阅读:
    使用eclipse创建maven+动态web的项目
    关于Maven项目build时出现No compiler is provided in this environment的处理
    spark日志输出
    spark并行度加载关系数据库
    【java记录】序列化拷贝
    客户端远程访问高可用(HA)hdfs
    spark算法
    算子的分类和 宽依赖算子、窄依赖算子
    单元测试junit使用
    spark1.x和spark2.x兼容Iterable和Iterator问题【未解决】
  • 原文地址:https://www.cnblogs.com/NikkiNikita/p/9450744.html
Copyright © 2011-2022 走看看