UNIX中使用find和xargs
find命令格式:
find pathname -options [-print -exec -ok]
pathname:find命令所查找的目录路径,用.表示当前目录,用/表示系统根目录
-print :find命令将匹配的文件输出到标准输出
-exec :find命令对匹配的文件执行该参数所给出的shell命名,形式为'command'{} \;
-ok :和-exec的作用相同,只不过更安全,每次执行前都需要用户给予确认
find命令选项:
-name: 按照文件名查找文件
-perm: 按照文件权限来查找文件
-prune: 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了-depth,此项忽略
-user: 按照文件属主来查找文件
-group:按照文件所属的组来查找文件
-mtime -n +n: 按照文件的更改时间来查找文件,-n表示距现在n天内,+n表示距现在n天前
-atime 、 -ctime 与mtime相似
-nogroup: 查找无有效所属组的文件,即该文件所属组在/etc/groups中不存在
-nouser: 查找无有效属主的文件,即该文件属主在/etc/passwd中不存在
-newer fiel1 ! -newer file2: 查找更改时间比文件file1新但比文件file2旧的文件
-type:查找某一类型的文件,比如: b块设备 d目录 c字符设备 p管道 l符号链接 f普通
-size n[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节计算
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-fstype:查找位于某一类型文件系统中的文件,这些文件系统通常可以在配置文件/etc/fstab中找到,该配置文件包含了本系统中有关文件系统的信息
-mount:在查找文件时不跨越文件系统mount点
-follow:如果find命令遇到符号连接文件,就跟踪至链接所指向的文件
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中
各参数说明举例:
-name选项:
例: find . -name "*.txt" -print 查找当前目录的*.txt文件
find ~ -name "[a-z][a-z][0--9][0--9].txt" -print 查找小写字母开头,后面两位数字
-perm选项:
find . -perm 755 -print find ~ -perm -007 -print
-user和-nouser选项:
find . -user username -print 查找文件属主为username的文件
find . -nouser -print 查找文件属主在/etc/passwd中没有定义的账户的文件
-newer选项:
find . -newer filename1 ! -newer filename2 -exec ls -l {} \;
将把比filename1更新但不比filename2新的文件使用ls -l列举出来。
技巧,如果想找一个更改时间两个小时内的文件,比如现在是23:50,
touch -t 05042150 file '创建一个05月04日21:50分的文件file
find . -newer file -print '查找比21:50文件file更新的文件
-type选项:
find /etc -type d -print 查找/etc下所有的目录
find /etc ! -type d -print 查找/etc下非目录的文件
-size选项:
find . -size +1000000c -print 查找当前目录大小超过1M的文件
find . -size 10 -print 查找当前目录大小正好为10块的文件(1块大约512字节)
-ok选项:
find . -name "*.log" -mtime +5 -ok rm {} \; 删除5日前的log文件,并需要用户确认
目录排序find用法:
find . -type d -print -local -mount |sort
xargs命令:
在find命令中加上-exec选项会是与find匹配的文件一起传递给exec做为参数,但是有些系统能够传递给exec的命令有限,这样find在运行一些时间后有可能就会报溢出错误,但如果使用xargs后,find出来匹配的文件会先传递给xargs,然后由xargs一部分一部分地再传递给命令做为参数
find / -type f -print | xargs grep "device"
find . -name "core" -print | xargs echo " " >/tmp/core.log
posted on 2009-03-19 06:22 fengyuwuzu1980 阅读(489) 评论(0) 编辑 收藏 举报