Linux--find命令和 xargs命令组合
find 查找文件的命令,并可以做出相应的处理
命令格式:
find filename 【选项】【-print -exec -ok ...】
选项参数:
1、-name :按照文件名称查找,可以提前cd定位,也可以在find命令最前面加上待查找路径
注意需要写上文件类型
2、-type:按类型查找文件
d: 目录文件 b:块设备文件 c:字符设备文件 f:普通文件
3、-mtime -n +m: 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
命令实操:
1.find 【路径】(可省) -name "*.ini"(或者可以指定任意准确的文件名称)
2、find 【路径】(可省) -type f/d -name "*.ini"
练习:
1、寻找具体的文件
2、当前目录下寻找任何文件后缀是.ini的文件
3、在当前目录下查找所有的目录
4、在当前目录下查找所有的文件
find 与 xargs 的组合:
xargs的命令作用是生成一些参数,跟find组合的时候,就是获取find的每一个参数; 当 xargs 后面没有接任何的命令时,默认是以 echo 来进行输出。
find命令去加载你在查找的东西,xargs会对你查找到的每一个东西,做相同的操作。
用xargs的一个好处是,不用担心命令超长。
什么是xargs:x 是加减乘除的乘号,args 则是 arguments (参数) 的意思,所以说,就是在产生某个指令的参数的意思;
会使用 xargs 的原因是, 很多指令其实并不支持管线命令,因此我们可以透过 xargs 来提供该指令引用 standard input 之用。
实例:1、搜索具体文件:在当前目录下,所有普通文件中搜索“hh”这个词
find ./ -type f | xargs grep "hh"
2、与删除连用:①在当前目录下,删除1天以内的所有东西
find ./ -mtime -1 | xargs rm -rf
②在当前目录下,删除文件大小为0的文件
find ./ -size 0 | xargs rm -rf