• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小小慧
博客园    首页    新随笔    联系   管理    订阅  订阅
15 查找文件

• 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

 

posted on 2016-08-19 21:39  小小慧  阅读(207)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3