概述

find命令的工作方式:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。

选项

-print:指明打印出匹配文件的文件名(路径)。当使用-print时,'\n'作为用于分隔文件的定界符

-print0:指明使用'\0'作为定界符来打印每一个匹配的文件名。当文件名中包含换行符时,这个方法就有用武之地了

-name:指定文件名所必须匹配的字符串。支持通配符

find /home/dd -name "*.txt" -print

-iname:-name忽略大小写

-path:匹配路径,支持通配符

find . -path "*www*"

-perm:指定权限

-regex:使用正则表达式来匹配文件

find . -regex ".*\(\.py\|\.sh\)$"

-iregex:-regex忽略大小写

-maxdepth:指定查找最大深度目录

find . -maxdepth  -type f -print

-mindepth:指定从第几深度目录开始查找

运算符:

( expr ):Force precedence.

expr1 expr2

Two expressions in a row are taken to be joined with an implied "and"; expr2 is not evaluated if expr1 is false. 

find . -name '1.txt' -type f -user 'pdd'

! expr:逻辑非

find ! -name 'tmp'

expr1 -a expr2:逻辑与,默认选项

  Same as expr1 expr2.

expr1 -o expr2:逻辑或

  Or; expr2 is not evaluated if expr1 is true.

find . \( -name "*.txt" -o "*.pdf" \) -print

-type: 指定查找文件的类型

b 块设备

c 字符设备

d 目录

f 普通文件

l 符号链接

p FIFO

s 套接字

根据文件时间进行搜索(-{a,m,c}time以天为计量单位,-{a,m,c}min以分钟为计量单位)

访问时间(-atime,-amin):用户最近一次访问文件的时间

修改时间(-mtime,-mtime):文件内容最后一次被修改的时间

变化时间(-ctime,-cmin):文件元数据(metadata,例如权限或所有权)最后一次改变的时间

find . -type f -atime - -print  # 最近七天内被访问过的文件
find . -type f -atime -print # 恰好七天前被访问过的文件
find . -type f -atime + -print # 访问时间超过七天的文件

-size:根据文件的大小进行搜索

b 块(512字节 default)

c 字节

w 字(2字节)

k 千字节

M 兆字节

G 吉字节

find . -type f -size +2k  # 大于2KB的文件
find . -type f -size -2k # 小于2KB的文件
find . -type f -size 2k # 等于2KB的文件

-delete:删除查找到的匹配文件

-user(可以是用户名或UID):查找特定用户所拥有的文件

-exec command {} \;:与其他命令进行结合

find . -type f -user root -exec chown www {} \;

在这个命令中,{}是一个特殊的字符串,与-exec选项结合使用。对每一个匹配的文件,{}会变替换成相应的文件名。例如,上述命令找到两个文件test1.txt和test2.txt,它最终会被解析位chown www test1.txt和chown www test2.txt

-prune:跳过指定的目录

find . -path ./pdd -prune -o -print
find / -path /data -prune -o -size +10M -type f # 打印/data目录以外体积大于10M的文件

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. 看完你也能独立负责项目!产品经理做APP从头到尾的所有工作流程详解!

    (一)项目启动前 从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为 ...

  2. PHPmailer关于Extension missing: openssl报错的解决

    最近在写一个网页的时候,需要用到PHPmailer来发送邮件,按照官网上给出的demo写出一个例子,却报错Extension missing: openssl 最后发现需要修改php.ini中的配置: ...

  3. Eclipse for Java EE软件操作集锦(一)

    以下是我在Java网站开发过程中,关于软件操作Eclipse中,遇到的一些问题并提供了解决方案.一.java web开发使用的集成开发工具是eclipse for Java EE 官方下载地址:htt ...

  4. jQuery解决iframe高度自适应代码

    网上查了好多用着都不行,自己搞定了:在包含iframe的页面中加入以下脚本,基本思想是在iframe加载内容后重新设置高度,下面代码尽在IE6中用过,没在其他浏览器中测试. 代码如下: <scr ...

  5. SSH面试题(struts2+Spring+hibernate)

    struts2 + Spring +hibernate Hibernate工作原理及为什么要用?   原理:   1.读取并解析配置文件   2.读取并解析映射信息,创建SessionFactory ...

  6. 高性能Mysql主从架构的复制原理及配置详解

    温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...

  7. 用批处理脚本一键安装 MongoDB

    下载MongoDB安装文件,解压到D:\MongoDB: 运行脚本: @echo off set mongobin=D:\MongoDB ::在mongodb文件夹下建立data,log文件夹 md ...

  8. JAVA UUID 生成

    UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成UUID的API.UUID按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯 ...

  9. Java 性能优化之 String 篇

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-optmizestring/ Java 性能优化之 String 篇 String 方法用于文本分析 ...

  10. OC中加载html5调用html方法和修改HTML5内容

    1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webViewDidFinishLoad: 4.在代理方法中进行操作H ...