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

find的用法的更多相关文章

  1. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  6. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  7. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  8. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  9. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

  10. [转]thinkphp 模板显示display和assign的用法

    thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...

随机推荐

  1. 子集构造法实现NFA的确定化

    功能: 采用子集构造算法实现NFA的确定化 输入:读取NFA的文件(文件名test.txt),  文件格式: 第一列表示状态名,第二列和第三列分别表示输入字符a和b到达的状态 输出:确定化后的DFA( ...

  2. stl_alloc.h分配器

    五.分配器:5.1.头文件: 5.1.1.include<stl_alloc.h> //内存的分配. 5.1.2.include<stl_construct.h> //对象的构 ...

  3. java并发程序——并发容器

    概述 java cocurrent包提供了很多并发容器,在提供并发控制的前提下,通过优化,提升性能.本文主要讨论常见的并发容器的实现机制和绝妙之处,但并不会对所有实现细节面面俱到. 为什么JUC需要提 ...

  4. django restframework serializer 增加自定义字段

    在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现 ...

  5. [原创]ssget过滤动态块的方式

    Autocad在2006增加了新的动态块功能,方便了对块的动态修改,但是修改动态块后,块名会变成一个匿名块,导致无法通过块名来快速过滤. 明经论坛上有人通过全选块后再来遍历筛选,我通过研究简化了这个问 ...

  6. __call()和__callStatic()实例详解

    <?php class Demo { //第一个参数是方法名,第二个参数是方法参数,以数组形式传入 public function __call($method,$args) { //遍历参数$ ...

  7. django无法加载admin的静态内容的问题(Centos7+Nginx+uwsgi环境下)

    Nginx静态资源无法加载,导致admin没有CSS样式: 这个问题,主要是要理解: 1.Django不会去解析静态内容(css,js,img)等,而是交给Nginx去处理,所以nginx.conf要 ...

  8. 开源库RxJava、ButterKnife学习记录

    1. 简介 RxJava "RxJava is a Java VM implementation of Reactive Extensions: a library for composin ...

  9. 基于webpack2.x的vue2.x的多页面站点

    vue的多页面 依旧使用vue-cli来初始化我们的项目 然后修改主要目录结构如下: ├── build │   ├── build.js │   ├── check-versions.js │   ...

  10. CI 图片上传路径问题的解决

    很久没有用CI了,新公司需要用ci ,图片上传的功能,我都搞半天,伤心 1. 要看源码,upload.php里do_upload()是上传的主要函数. public function do_uploa ...