码迷,mamicode.com
首页 > 其他好文 > 详细

15 查找文件

时间:2016-08-19 22:11:30      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

locate –通过名字来查找文件
find –在目录层次结构中搜索文件
我们也将看一个经常与文件搜索命令一起使用的命令,它用来处理搜索到的文件列表:
xargs –从标准输入生成和执行命令行
另外,我们将介绍两个命令来协助我们探索:
touch –更改文件时间
stat –显示文件或文件系统状态

 

一、locate

只能根据文件名进行查找

 

二、find——可以基于各种各样的属性,比如应用选项,测试条件,操作

huiubantu@ubuntu:~$ find ~ |wc -l      找出活跃的文件,并计算数量
191

1.测试条件限定

    -type限定测试条件

huiubantu@ubuntu:~$ find ~ -type d | wc -l    -type d限制只搜索目录    f 限制只搜索文件   c字符设备文件  b快设备文件  l符号链接
88

     文件名匹配通配符模式和文件大小

huiubantu@ubuntu:~$ find ~ -type f  -name"\*.JPG" -size +1M | wc -l

2.操作符

huiubantu@ubuntu:~$  find ~ \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \)   另外还有-and  -not  ()

3.预定义操作

-delete 删除匹配文件
-ls ls-dils
-print 把匹配文件的全路径名输送到标准输出
-quit 一旦匹配一个就退出
huiubantu@ubuntu:~$ find ~ -type f -name*BAK -print

4.用户定义的行为

              传统方法是通过-exec行为唤醒随意命令

格式  -execcommand {};      command 就是指一个命令的名字, {} 是当前路径名的符号表示,分号是要求的界定符表明命令结束。

              也可以用-ok行为代替-exec

huiubantu@ubuntu:~$  find ~ -tpe f -name foo* -ok ls -l {} ;‘     注意{}和;必须引起来或被转义

5.提高效率

   当 -exec 行为被使用的时候,若每次找到一个匹配的文件,它会启动一个新的指定命令的实例。我们可能更愿意把所有的搜索结果结合起来,再运行一个命令的实例,这样就能提高效率

    有两种实现方法 

           1)使用 find 命令自己的一个新功能——通过把末尾的分号改为加号,就激活了 find 命令的一个功能,

huiubantu@ubuntu:~$ find ~ -type f -name foo* -exec ls -l {} +

           2)外部命令xargs——它从标准输入接受输入,并把输入转换为一个特定命令的参数列表。

huiubantu@ubuntu:~$ find ~ -type f -name foo\* -print | xargs ls -l

 

三、返回操练场

 1.创建一个包含许多子目录和文件的操练场

huiubantu@ubuntu:~$ mkdir -p playground/dir-{00{1..9},100}    创建了100个目录,每个目录中含有26个空文件
huiubantu@ubuntu:~$ touch palyground/dir-{00{1..9},100}/file-{A..Z}   touch命令用来设置或更新文件的访问,更改和修改时间

2.找到我们创建的一百个名为 file-A 的文件实例

huiubantu@ubuntu:~$ find playground -type f -name file-A | wc -l   注意find结果无序,不同于ls,他的排序根据存输设备的布局

3.我们看一下基于文件的修改时间来查找你文件

touch

 

15 查找文件

标签:

原文地址:http://www.cnblogs.com/xiaoxiaohui2015/p/5789030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!