• find的用法


    find在Linux系统中和其它工具,如sed、awk、grep等结合起来用,非常有用。

    1、列出系统中所有属于root用户的“set uid”文件

    #find / -perm 4755 –uid 0 –type f –print
     

    2、用inode号查找文件

    #find / -inum 1877432         //从根目录开始查找inode号为1877432的文件
     

    3、对查找到的每个文件执行某个命令

    #find . -name "*.c" -exec wc -l '{}' ;              //对找到的每个文件执行wc -l命令统计行数
    #find . -name "*.srt" -execdir cp '{}' /tmp ;  //拷贝当前目录包括子目录中的所有srt文件到/tmp目录下
    #find . -name "*.srt" -execdir cp '{}' /tmp ';'
    #find . -name "*.srt" -execdir cp {} /tmp ; 
    相当于
    #cp file1 /tmp;cp file2 /tmp;...
     

    4、对查找到的所有文件执行某个命令

    #find . -name "*.c" -exec wc -l '{}' +             //对查找到的所有文件执行wc -l命令 ,因而会打印总数,等于是把所有找到的文件作为一个字符串替换 {},然后执行命令
     
    进一步的解释:
    1.'{}'用来替换find查找的每个结果,需要用或单引号防止shell解释;
    2. ; 也需要或单引号防止shell解释
    3.+最后构建的命令行参数形式类似于xargs

    5、使用通配符/正则表达式查找文件

    #find . -name "*.c"    //通配符方式
    #find . -regex ".*[.]c"   //正则表达式

    6、多条件组合查找(-a,-o)

    #find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h  //-o是or的意思
    #find /home/cb/mp3 -name *.mp3 -o -name *.wav -o -name *.ape -o -name *.wma >/home/cb/mp3/mplayer.lst
     

    7、按文件尺寸查找

    #find ~/software -size +5000k    //找出software目录下尺寸大于5000k的文件
     
    进一步解释:
    -size:凡是+,就是>,-则是<
     

    8、按修改时间查找

    #find /home -mmin +60   //找出home目录下最近60分钟之前(1小时以前)有变动的文件或目录
    #find /home -mtime -2    //找出home目录下最近2天之内(48小时以内)有变动的文件或目录
     
    进一步解释:
    -mmin,-mtime:凡是+号,就是xxx分钟(或天)之前;凡是-号,则是xxx分钟(或天)之内
     

    9、防止搜索其它分区

    #find / -xdev -name *.mp3   //-xdev用来防止搜索其它分区。
     

    10、防止搜索子目录

    #find ./ -maxdepth 1 -name "*.ass" -exec sh -c "sed 's/N.*$//g' '{}' >./cn/'{}'" ;
     

    11、批量文件编码转换

    PROJECT_DIR=.
    BUILD_DIR=./build/java
    #find $(PROJECT_DIR)/config -name '*.sql' -type f -exec sh -c "iconv -f utf8 -t gb18030 '{}' | unix2dos > $(BUILD_DIR)/'{}'" ;
     
    上述用法在跨平台的mysql数据库应用中有用。

    =-=-=-=-=
    Powered by Blogilo

  • 相关阅读:
    Swift学习 --- 2.1基础部分
    【oracle案例】ORA-01722
    一种适合于大数据的并行坐标下降法
    【机器学习算法-python实现】svm支持向量机(3)—核函数
    让Editplus支持sql语法高亮显示
    CF986F Oppa Funcan Style Remastered
    HashMap和Hashtable的区别
    ArrayList和Vector的区别
    基本概念
    java编程规范
  • 原文地址:https://www.cnblogs.com/pandachen/p/4129683.html
Copyright © 2020-2023  润新知