您的位置:首页 > 运维架构 > Shell

unix命令——find、xargs

2014-11-30 20:44 211 查看
find-查找文件,下面只是简单的介绍,足够应对平常的使用。

命令格式  find [pathname] -option [-print -exec -ok]

1、pathname-查找的路径,没有指定时默认为当前目录

2、option常用的有以下几个
-name (文件名)
-user (所有者)
-group (所有组)
-type (类型 f(普通文件),d(目录),l(符号链接),c(字符设备文件)、b(块文件设备))
-size (大小) +n 表示大小大于n,-n表示小于n
-depth 选项表示先访问本目录下的所有文件,然后访问子目录
-fstype 指定的文件系统  如:ext

-mtime -n +n创建时间(时间单位为:天) -n 表示最近n天内创建的,+n表示,n天以前创建的

3、[-print -exec -ok]后续处理
-print 表示对于匹配的每一项进行打印(默认处理)
-exec command -initargs {}\; 对匹配的每一项执行后面command(initargs为该命令的启动参数),需要注意的是,末尾必须接{} \; 例如 find -type f -exec ls -l {} \;
-ok 与exec一样,但按说明比上面的exec要更安全

补充:
由于exec的命令长度在不同的系统上是有所限制的,作为一种等价的转换或者说改进,可以使用xargs进行组合使用

xargs命令是从标准输入中获取参数,来运行相应的命令。例子如下。
find -type f -exec ls -l {} \; //后面 {}  \;这三个符号绝对不能缺省
find -type f|xargs ls -l 与上面是等价的

不过,虽然功能上是等价的,但是从运行的实际效率来看,似乎后者更快
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  command shell find xargs