xargs mysql_shell学习笔记之 find/xargs

一:知识背景

1.这两个命令就是用来匹配出你在整个文件系统中需要的目录或者文件

2.多数shell会采用find和xargs清理过期的日志,这个最合适不过了

二:命令详解

语法:

find filepath -option 【-print  -exec -ok】

filepath就是搜索的文件指定目录,大家若不知道可以直接/ 在根目录执行,只不过时间较长

-option:

选项很多我就选择几个实用的: name 名称匹配   mtime 时间匹配 type文件类型匹配 当然几个选项可以通过管道符并行使用达到多次匹配的作用

print 将find的结果标准输出,很多人并不喜欢这样使用

-exec和- ok的作用一致,对匹配的文件执行该参数所给出的linux命令。相应命令的形式为 'command' {} \;,注意{ }和\;之间的空格。

选项详解:

-iname:find /usr/local -name [a-z][A-Z][0-9]*.txt -print

这就是对于 /usr/local文件下 首字符为小写字母,第二个为大写字符、第三个为数字、*为匹配所有的txt文件进行匹配,一个例子足以

- mtime : -mtime后面的+n 匹配文件更改时间距今 n天以前的文件 ; -n匹配文件更改时间距今 n日以内的文件

find /usr/local/ -mtime +5 -print  匹配该目录下修改时间距命令执行时间5天以前的文件

-depth:一般没有加就是从父目录开始匹配 ,添加规则就是从子目录开始匹配

[root@localhost /]# mkdir -p test/test1/test2/test3

[root@localhost test]# find /test/ -depth

68f724bad5a33d9a9f6bd2ca7369ecb7.png

/test/test1/test2/test3/test4

/test/test1/test2/test3

/test/test1/test2

/test/test1

/test/

f8652fb9c5746ba486fdf6d62ff26aea.png

-type 文件类型

d dictory 目录

f file 普通文件

l   符号链接文件

s socket 接口文件 (区别于 -s 为判断文件存在且至少有一个字符)

-exec -ok来执行shell命令

-exec:

[root@localhost test]# find . -iname test1 -exec ls -al {} \;

total 12

drwxr-xr-x. 3 root root 4096 Dec 22 07:43 .

drwxr-xr-x. 3 root root 4096 Dec 22 07:46 ..

drwxr-xr-x. 3 root root 4096 Dec 22 07:43 test2

大家要注意 {} \之间有空格,后面添加;表示命令行结束

-ok:

[root@localhost test4]# find /test  -iname test123  -ok rm  {} \;

< rm ... /test/test1/test2/test3/test4/test123 > ? y

-ok 也是后面添加shell指令但是会有安全提醒,输入y删除,n否定

xargs 就是今天的精华了

xargs和exec作用相同,f i n d命令将所有匹配到的文件一起传递给exec执行。不幸的是,有些系统对能够传递给exec的命令长度有限制,这样在 find命令运行

几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是x a rg s命令的用处所在,特别是与 f i n d命令一起使用。find命令把匹配的文件传递给 x a rg s命令,而x a rg s命令每次只获取一部分文件而不是全部,不像 - e x e c选项那样。

[root@localhost mysql-test]# find /test/ -iname test2| xargs echo''>/root/mysql-5.6.40/mysql-test/README

[root@localhost mysql-test]# vim /root/mysql-5.6.40/mysql-test/README

4666c6d237a3296b48463ff1b332bc80.png

大体上 exec和xargs就足够大家用了!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值