免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2128 | 回复: 0
打印 上一主题 下一主题

find和xargs命令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-04 15:06 |只看该作者 |倒序浏览
[color="#ff0000"]find命令格式:
    [color="#800000"]find pathname -[color="#0000ff"]options [color="#000000"][-print -exec -ok]
    pathname:find命令所查找的目录路径,用.表示当前目录,用/表示系统根目录
    -print  :find命令将匹配的文件输出到标准输出
    -exec   :find命令对匹配的文件执行该参数所给出的shell命名,形式为'command'{} \;
    -ok     :和-exec的作用相同,只不过更安全,每次执行前都需要用户给予确认
[color="#ff0000"]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命令,将这些文件备份到磁带设备中
 
[color="#ff0000"]各参数说明举例:
-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      [color="#003300"]'创建一个05月04日21:50分的文件file
         find . -newer file -print   [color="#003300"]'查找比21:50文件file更新的文件
[color="#000000"]-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
[color="#003300"]xargs命令:
    [color="#000000"]在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
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/75321/showart_1164399.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP