• Shell中对于Find查到的文件处理小结
    时间:2010-11-20   作者:佚名   出处:互联网

    本文对Shell中对于Find查到的文件处理小结,以作备用

    1. 删除core目录确认和不确认的两种情况

    find . -name core -exec rm {} \; /* 删除core */
    find . -name core -ok rm {} \; /* 删除core 带确认 */

    2.访问和修改

    /* access */
    find $HOME -atime -1 -print;
    /* modify */
    find $HOME -mtime -1 -print;

    3. /* 查找*.o 或 a.out 7天之内没存取过的并删除 */
    find . \( -name a.out -o -name *.o \) -atime +7 -exec rm {} \;

    4, 搜寻ZhXwin下所有C原代码中的"Chinput"(试试取消下行的-q参数):
    find /download/ZhXwin -name *.c -exec grep -q -s Chinput {} \; -print
    查找所有文件则可以用:
    find . -type f -exec grep -s chinese {} \; -print

    5, 利用Find命令改变所有权 想要改变当前目录下所有文件的所有权,可以这样:
    find . -exec chown OWNER.[GROUP] {} \; (Solaris)
    find . -exec chown -R OWNER.[GROUP] {} \; (Linux)

    6.一个find查询的实例:
    find ./ -maxdepth 1 -type f -name "*${datestr}*" ! -name "*.gz" -exec gzip {} \;
    find ./ -maxdepth 1 -type f -name "*${datestr}*" -name "*.gz" -exec mv {} ${LOGFILEPATH}/ \;

    格式: find [path...] [expression]
    find / -name access_log 2>/dev/null 不显示错误信息
    find /-amin n ##查找系统中最后N分钟访问的文件
    find /-atime n ##查找系统中最后n*24小时访问的文件
    find /-cmin n ##查找系统中最后N分钟被改变状态的文件
    find /-ctime n ##查找系统中最后n*24小时被改变状态的文件
    find /-empty ##查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
    find /-false ##查找系统中总是错误的文件
    find /-fstype type ##查找系统中存在于指定文件系统的文件,例如:ext2 .
    find /-gid n ##查找系统中文件数字组 ID 为 n的文件
    find /-group gname ##查找系统中文件属于gnam文件组,并且指定组和ID的文件
    find / -mmin n # 查找在系统中最后n分钟里修改过的文件
    find / -mtime n #查找在系统中最后24*n小时里修改过的文件
    find / -nouser #查找在系统中属于作废用户的文件
    find / -size nc #查找在系统中长度为n字节的文件
    find / -size +nc #查找在系统中长度大于n字节的文件
    find / -daystart ##测试系统从今天开始24小时以内的文件,用法类似-amin
    find / -depth ##使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
    find / -follow ##遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
    find / -help ##显示命令摘要
    find / -maxdepth levels ##在某个层次的目录中按照递减方法查找
    find / -mount ##不在文件系统目录中查找, 用法类似 -xdev.
    find / -noleaf ##禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
    find / -version ##打印版本数字
    -exec command; ##查找并执行命令
    -fprint file ##打印文件完整文件名
    -fprint0 file ##打印文件完整文件名包括空的文件
    -fprintf file format ##打印文件格式
    -ok command; ##给用户命令执行操作,根据用户的Y 确认输入执行
    -printf format ##打印文件格式
    -ls ##打印同种文件格式的文件.
    几个参数之间可以用-and,-or连接,某个参数取反可用!.

    网友留言/评论

    我要留言/评论