文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Find 命令的使用

Find 命令的使用

时间:2007-04-24  来源:ahhy

    Find 命令的一般形式:           find pathname -options [-print -exec -ok]       * -exec     find 命令对所匹配的文件执行该参数所给出的 shell 命令。相应的命令形式为:'command' {} \;,注意 {} 和 \; 之间的空格。
    * -ok       和 -exec 的作用相同,只是在执行命令之前,给出提示。
  1,命令选项       -name       按文件名来查找     -perm       按照文件权限来查找     -user       按照文件属主
    -group      按照文件所属组
    -mtime n    文件更改时间,-n 表示距离现在 n 天以内,+n 表示距离现在 n 天以前     -atime n    查找在指定时间曾被存取过的文件或目录     -ctime n    查找在指定时间之时被更改的文件或目录     -newer f1   查找其更改时间较指定文件或目录 - f1 - 的更改时间更接近现在的文件或目录     -type  x    查找某一类型的文件
        b --- 块设备文件
        d --- 目录
        c --- 字符设备文件
        p --- 管道文件
        l --- 符号链接文件
        f --- 普通文件
        s --- socket
        n --- Network special file
    -size n[c]  查找符合指定的文件大小的文件,带有 c 时表示字节,不带 c 表示块为单位     -fstype <文件系统类型>  只寻找该文件系统类型下的文件或目录,这些文件系统类型通常可以在 /etc/fstab 中配置的     -follow     如果遇到符号链接文件,则转向其实际指向文件     -cpio device 对符合的文件使用 cpio 命令,备份到指定 device 中   2,相关命令选项的使用       * 使用 name 选项           eg: 在当前目录及其子目录中查找文件名以一个大写字母开头的文件             find . -name '[A-Z]*' -print           eg: 在当前目录及其子目录中查找文件名以两个小写字母然后是两个数字开头的文件             find . -name '[a-z][a-z][0-9][0-9]*' -print       * perm 选项           eg: 在当前目录下查找文件权限位为7 5 5的文件,即文件属主可以读、写、执行,其他用
户可以读、执行的文件
            find . -perm 755 -print           eg: 在当前目录下查找所有用户都可读、写、执行的文件(要小心这种情况),可以使用 find 命令的 -perm 选项。在八进制数字前面要加一个横杠-。在下面的命令中 -perm 代表按照文件权限查找,而 "007" 和你在c h m o d命令的绝对模式中所采用的表示法完全相同             find . -perm -007 -print       * user 和 nouser 选项
       
        eg: 在 $HOME 目录中查找文件属主为 bill 的文件
            find - -user bill -name 'process*' -print           eg: 为了查找属主帐户已经被删除的文件,可以使用 -nouser 选项。这样就能够找到那些属主在 /etc/passwd 文件中没有有效帐户的文件。在使用 -nouser 选项时,不必给出用户名;find 命令能够为你完成相应的工作             find /home -nouser -print       * 按照更改时间查找文件           eg: 在系统根目录下查找更改时间在5日以内的文件             find / -mtime -5 -print           eg: 在 /bill/src 目录下查找更改时间在3日以前的文件             find /bill/src -mtime +3 -print       * 查找比某个文件新或旧的文件           eg: 查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用 -newer 选项。它的一般形式为:             newest_file_name ! oldest_file_name           eg: 查找更改时间比文件 gather01.cpp 新但比文件 gather03.cpp 旧的文件             find . -newer gather01.cpp ! gather03.cpp -exec ls -l {} \;       * type 选项           eg: 在 /etc 目录下查找所有的目录             find /etc -type d -print           eg: 在当前目录下查找除目录以外的所有类型的文件             find . ! -type d -print       * size 选项           eg: 在 /bill 目录下查找文件长度恰好为 100 字节的文件             find /bill -size 100c -print           eg: 在当前目录下查找长度超过 10 块的文件(一块等于 512 字节)
            find . -size +10 -print
      * 使用 exec 或 ok 来执行 shell 命令           eg: 在 /logs 目录中查找更改时间在 5 日以前的文件并删除它们             find /logs -type f -mtime +5 -exec rm {} \;       * 其他一些例子:           eg: 在当前目录中查找 suid 置位,文件属主具有读、写、执行权限,并且文件所属组的用户和其他用户具有读和执行的权限的文件             find . -type f -perm 4755 -print   3,xargs 命令       在使用 find 命令的 -exec 选项处理匹配到的文件时,find 命令将所有匹配到的文件一起传递给 exec 执行。不幸的是,有些系统对能够传递给 exec 的命令长度有限制,这样在 find 命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是 xargs 命令的用处所在,特别是与 find 命令一起使用。Find 命令把匹配到的文件传递给 xargs 命令,而 xargs 命令每次只获取一部分文件而不是全部,不像 -exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。       另外,在使用 xargs 命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。       eg: 查找系统中的每一个普通文件,然后使用 xargs 命令来测试它们分别属于哪类文件:         find / -type f -print | xargs file       eg: 在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到 /bill1/bill/hhy/core.log 文件中         find / -name "core" -print | xargs echo "" > /bill1/bill/hhy/core.log       eg: 用 grep 命令在所有的普通文件中搜索 device 这个词         find / -type f -print | xargs grep "device"  
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载