Linux命令简单操作之find和xargs

一、find

find:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应操作

常用参数

  -print:打印出批判文件的文件名(路径), 是输出文件的分割符

  -print0:(null)作为输出文件的分割符,xargs -0

  -name:文件名必需匹配的字符串,(-name“xx”-o -name“xx”) 匹配多个字符串

  -iname:忽略字母大小写

  -path:匹配文件路径

  -type:文件类型过滤

  -size:文件大小搜索

  -delete:删除查找到的文件

  -perm:匹配具有特定权限值的文件

  -newer:指定一个用于比较时间戳的参考文件,匹配出参考文件更新的所有文件

  -user:制定某用户文件

  -exec:借助-exec与其他命令进行结合,命令格式为:command {} ; 注意{}和之间的空格

  -ok:和-exec的作用相同,只是在安全模式下进行操作,按y键yes,按n键no

  -atime:访问时间,用户最近一次访问文件的时间,单位:天  -amin 单位:分

  -mtime:修改时间,文件内容最后一次被修改的时间,单位:天 –mmin 单位:分

  -ctime:文件(例如权限或所有权)最后一次改变的时间,单位:天 –cmin单位:分

   -表示小于(最近) +表示大于(超过) 没有- 或+ 表示数字当天

  !:表示不匹配规则的文件 

应用:

  1.列出所有的.txt 或者 .h的文件:

  find . -type f  -name "*.txt"  -or -name "*.h"

  2.-exec:借助-exec与其他命令进行结合,命令格式为:command {} ; 注意{}和之间的空格

二、xargs

xargs:构造命令行参数并运行命令

同管道的区别

   管道是实现将前面的标准输出作为后面的标准输入

    xargs是实现将标准输入作为命令的参数

   xargs的默认命令是echo,默认定界符是空格(空白字符)

    这意味着传递给xargs的输入如果包含换行和空白字符,通过xargs的处理,换行和空白将被空格取代,因此xargs是构建单行命令的重要组件之一

 常用参数

  -n number :多行输出,多个参数

  -d X:自定义定界符

  -I | -i replace_str:在xargs扩展时replace_str会被替换为从标准输入的每一行参数

  -L number :标准输入读取非空number行作为参数,-L 1 等价于-I

  -p:询问是否运行

  -t:启用跟踪方式

  -s size:设置命令行的最大字节数

  -x:如果有任何 命令行大于 -s Size 标志指定的字节数,停止运行 xargs 命令

应用:

  1.-n number:设置命令的参数个数

  2.-I replace_str:命令参数替换

  3、xargs和find算是一对死党

  find的-print0和xargs的-0

  ps:只要是把find的输出结果作为xargs的输入,就必须将-print0与find结合使用,以字符null()来分割,同时,xargs -0将null作为定界符

原文地址:https://www.cnblogs.com/luyanhong456/p/7663234.html