find命令,像cd一样经常使用.只是可能大多数时间仅仅要那么一两个參数就足够使用了.或者说,勉强够用了.可是当我们主动的去翻看一下find的手冊,会发现原来更实用的功能都没实用到.

本文结合自己的使用对find进行简单的介绍.不保证全面,仅列出我在使用中受益颇多的选项.

find dir [option]  指定当前的一个文件夹进行查找.

option能够省略,假设省略的话,find会递归的列出当前文件夹下的全部文件.

经常使用的option有非常多,仅列出经常使用的一部分:

-name   指定文件名称,能够使用通配符,假设使用通配符的话,须要用双引號扩起来.

-type    指定文件的类型,可选的类型包含普通文件f  文件夹文件d  符号文件l  字符设备c  块设备b等.

-size   后面能够接+-N   接+N表示超出N指定大小的文件,-N表示小于N指定的大小.

-newer  file   列出当前文件夹以及子文件夹中,新于指定file文件的

-mtime  +-N   和size选项类似,+N表示改动时间老于指定的N*24消失.-N表示改动时间新于N*24消失.

-ctime   +-N   同上,只是表示的是文件的状态改变的时间,注意find并没有所谓的按创建时间查找

-atime +-N   同上,查找的基准是訪问的时间.

-maxdepth   最大文件夹深度.指定了这个选项,能够避免find无止境的去遍历子文件夹.

-depth   这个选项的意思是处理完一个文件夹,再去遍历子文件夹.

-and   用于条件,能够指定多个条件,返回的结果是满足全部条件的文件

-or   同上,只是返回的是满足条件之中的一个的就可以.

!   放在选项前面,后面能够看到他的使用方法.用来指定不满足条件的文件.

-exec command [option]  {} \;   非交互式运行命令,即将find找到的全部文件运行command.注意{}和\之间的空格.

-ok command [option] {] \;   交互式运行命令,将find找出来的文件运行command,可是会提示是否确认.

-delete   将查找出来的文件都删除.

以上应该就能够应付大多数的场景了.之所以用find事实上还有另外一个原因.是我不经意间发现的.当一个文件夹下文件较多的时候.可能你想这样运行命令:ls "*.txt" | xargs cat

看似没有问题的一条命令,却会错误发生.原因是文件太多了.无法用这个命令,这个时候find也会派上用场.想必find肯定有不一样的地方吧.

来看看find在实际中的应用吧.

1. 找出当前文件夹的普通非sh后缀的文件并运行cat

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3AzYWxhaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

2. 列出非sh和txt后缀的文件

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3AzYWxhaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

上面列举了两种可能的写法.注意!和选项之间一定要有空格,否则会报错.注意前后小括号与选项之间也要有空格,否则也会报错.

小括号的作用可能如今体现的不是非常明显.我一时也想不到详细的样例了.总之就是假设没有小括号,有一种场景,多个条件做过滤而且使用-exec选项的时候,-exec选项后面的command只运行最后一个指定选项过滤出来的文件.额,我遇到过这个问题.可是却想不出来场景了.羞愧.

3. 列出当前文件加下大于某个大小的文件

须要注意的是,当没有指定单位的时候,size后面的数字的单位是512byte的一个块.所以不要想当然的觉得是字节.

大致find的使用方法就总结这么多.肯定有非常多不全面的,好在find的选项理解起来并不难,所以对比这选项也能够写出语句来.

8 shell命令之find的更多相关文章

  1. Hadoop Shell命令大全

    hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...

  2. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

  3. 在程序中执行shell命令

    在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识. 用 ...

  4. Linux远程执行Shell命令或脚本

    ## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...

  5. HBase基本shell命令

    HBase基本shell命令 以下shell命令都是经过测试,正常展示,若有不足,还望指点! 1.创建表 create ‘表名称’,‘列族名称1’,‘列族名称1’create 'test_M_01', ...

  6. Linux SHELL 命令入门题目答案(一)

    1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...

  7. Linux SHELL 命令入门题目(一)

    新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...

  8. shell命令获取最新文件的名称

    最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...

  9. 【转】Hadoop FS Shell命令

    FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...

  10. [蟒蛇菜谱] Python封装shell命令

    # -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLo ...

随机推荐

  1. LeetCode——Populating Next Right Pointers in Each Node II

    Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...

  2. STM8S---IO复用配置(STVP方式)

    1 说明 STM8S的IO复用用程序代码配置起来比較麻烦.通常是操作flash来操作option byte字节.配置寄存器更加麻烦,能够使用STM 标准外设驱动库来设置. 本文使用一种界面配置的方式来 ...

  3. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  4. 一款新型的智能家居WiFi选择方案——SimpleWiFi在无线智能家居中的应用

    一款新型的智能家居WiFi选择方案——SimpleWiFi在无线智能家居中的应用 先上图:     随着科学技术的不断发展,局域网也正逐渐向无线化,多网合一的方向发展,在这个多网合一快速发展过程中,带 ...

  5. UVa 10188 - Automated Judge Script

    题目:给你一些题目的输出结果,推断是AC,PE还是WA. 分析:模拟. 依照题意模拟就可以,注意PE条件为全部数字字符出现顺序同样就可以. 说明:想起非常多年前写的OJ的后台判题程序了╮(╯▽╰)╭. ...

  6. WinCE隐藏显示任务栏,当任务栏隐藏时将其显示,当任务栏显示时将其隐藏(FindWindow,ShowWindow,IsWindowVisible),

    HANDLE hWndTaskBar = ::FindWindow(TEXT("HHTaskBar"), NULL);  if(::IsWindowVisible(hWndTask ...

  7. Android最方便的数据库--LitePal

    郭最近看到神分析LitePal相框,我感觉很强烈,尝试了一下,真的好,我不知道,如果你不习惯学习,那么各不相同,我觉得很合适 看完之后,思想,对于我来说,,实体到set颂值,如果数据非常多,那么你可以 ...

  8. 正则匹配去掉字符串中的html标签

    1.得到超链接中的链接地址: string matchString = @"<a[^>]+href=\s*(?:'(?<href>[^']+)'|"&quo ...

  9. Linux下安装Python3.3.0

    Linux下安装Python3.3.0_路易_新浪博客 Linux下安装Python3.3.0 (2013-01-08 11:45:37)

  10. I2C操作笔记——以 AT24C04为例

    1.前言     对于大多数project师而言,I2C永远是一个头疼的问题.相比UART和SPI而言,I2C的时序要复杂一些,I2C组合变化也丰富一些.在这里以AT24C04为例说明I2C使用过程中 ...