`
dbaspider
  • 浏览: 256636 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Find Exec 用法

阅读更多

find /home -size +512k 查大于512k的文件

find / -size +100000k 查大于100m的文件


find -exec 命令很好用 

-exec command ;
               Execute command; true if 0 status is returned.   All   following   arguments   to find are taken to be arguments to the command until an   argument   consisting of #;' is encountered.   The string {}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find.   Both of these constructions might need to be escaped (with a \') or quoted to   protect   them   from   expansion   by the shell.   The command is executed in the starting directory.
-exec 参数后面跟的是 command命令,注意点如下:
command命令的终止,使用 ';' (分号)来判定,在后面必须有一个 ';'
'{}',使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理
特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 '\'在分号前明确说明,对于前面我们遇到的问题,主要就是这个原因引起的!
举例:
1.查询所有保护字符串“Hello”的文件
find / -exec grep "Hello" {} \;
2.删除所有临时文件
find / -name "*.tmp" -exec rm -f {} \;
在svn 上执行:
find . -type f -name "*.sh" -exec svn propset svn:executable on {} \;

=========

grep find 命令组合使用 

find grep 组合的一个例子
用来查找所有".h"文件中的含有“helloworld”字符串的文件.
find  -name "*.h" -exec grep "helloworld" {} \;


使用exec或ok来执行shell命令

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中

# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README

上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:

$ find logs -type f -mtime +5 -exec rm { } \;

记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n

按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。

# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash

find . -print|xargs grep "abcd" *
find . -print|xargs grep "abcd" *.java

标签:linux find grep
分类:Linux


0
1
分享到:
评论

相关推荐

    Linux中find常见用法示例

    ·find path -option [ -print ] [ -exec -ok command ] {} ;  find命令的参数;  pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。  -print: find命令将匹配的...

    linux shell学习之find

    一、基础用法 find /home/$USER 会列出用户主目录下的所有文件和目录 find /home/$USER -print print选项是打印的意思,默认换行打印 find /home/$USER -print0 使用print0会将换行符改为空字符进行输出 二、其他...

    Linux中find命令的用法入门

    find pathname -options [-print -exec -ok …] 介绍一种简单易记的格式: find &lt;指定目录&gt; &lt;指定条件&gt; &lt;指定动作&gt; 动作参数 1、-exec 命令名称 {} \; 对符合条件的文件执行所给的 unix 命令,而不询问...

    Linux find命令用法详解

    如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 语法 find path -option [ -print ] [ -exec -ok command ] {} \; 参数说明 : find 根据...

    Linux 基础命令 — find

    用法:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression find 路径 选项 表达式 命令选项 [root@fp-21 ~]# find --help Usage: find [-H] [-L] [-P] [-Olevel] [-D ...

    find命令查询指定时间的大文件并删除

    使用find命令和rm命令结合使用删除指定时间的文件 --时间单位为天 find 查询路径 -ctime/-mtime/-atime 时间范围 -name 文件名称 -type f -exec rm {} \; --时间单位为分钟 find 查询路径 -cmin/-mmin/-amin 时间...

    UNIX shell 编程指南

    find 和 exec xargs 保证shell脚本执行唯一性 用一条命令处理分别改变文件和文件夹的权限 unix时间戳与系统时间相互转换 awk的学习 保护自己编写的shell程序 农行全国集中版代发工资shell程序 Shell程序设计的流程...

    pup-find:CLI Ruby gem,用于在本地救援中搜索幼犬

    用法 待办事项:在此处写下使用说明 发展 签出仓库后,运行bin/setup来安装依赖项。 您也可以运行bin/console进行交互式提示,以进行实验。 要将这个gem安装到本地计算机上,请运行bundle exec rake install 。 要...

    UNIX期末试卷

    (4)服务器端在接收客户端的配置信息后,使用exec 系列函数完成对IP 地址、掩码、默认网关、DNS修改,并写入相应的配置文件。结果验证:使用ifconfig检查IP地址信息配置的正确性;使用nslookup检查DNS信息的正确性。 ...

    :high_voltage:使用xxHash进行快速filysystem指纹识别-Golang开发

    xxhashdir用法该软件包使用xxHash#而不是“ find。-type f -exec xxhsum {} \ +” $ ./xxhashdir来进行快速文件系统指纹识别。 ... 880788507839261490 README.md 11541949788444589007 .travis.yml xxhashdir用法...

    linux实现除了某个文件或某个文件夹以外的全部删除

    下面提供Linux下find命令的详细使用方法 在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。 语法:find [起始目录] 寻找条件 操作 说明:find命令从指定的起始目录开始,递归地...

    sails-orchestrate

    此适配器公开以下方法: find() Model . find ( id ) . exec &#40; function ( err , results &#41; { console . log ( err ) ; console . log ( results ) ; } ) ; 或者您可以针对多个目标。 Model . find ( ...

    vs2017-64-DXFRW库

    exec_prefix=D:/lib/DXFRW libdir=|D:/lib/DXFRW/lib includedir=D:/lib/DXFRW/include cmake使用时 find_package(libdxfrw REQUIRED) target_link_libraries( projectName libdxfrw::libdxfrw) 即可使用

    AIX系统中删除指定目录、指定后缀、指定天数以前的历史文件

    find /home/oracle/admin/zhjport/udump/ -name *.trc -mtime +30 -exec rm {} \; 如果要自动执行可以加入CRONTAB 本文出自 “麦地坞” 博客,请务必保留此出处 AIX是什么系统 AIX吧,Advanced Interactive ...

    NodeJs操作MongoDB教程之分页功能以及常见问题

    1 db.User.count() // 此方法等价于 db.User.find().count() 在分布式集合中,会出现计算错误的情况,这个时候推荐使用aggregate;  2,find() 方法以非结构化的方式来显示所有文档。 1 db.User.find();//相当于:...

    LINUX与UNIX_Shell编程指南(上)

    11.1.12 使用k的其他sort方法 108 11.1.13 使用k做分类键排序 108 11.1.14 指定sort序列 108 11.1.15 pos用法 108 11.1.16 使用head和tail将输出分类 109 11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件...

    Linux与unix shell编程指南(1-16)

    11.1.12 使用k的其他sort方法 108 11.1.13 使用k做分类键排序 108 11.1.14 指定sort序列 108 11.1.15 pos用法 108 11.1.16 使用head和tail将输出分类 109 11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件...

    rm-nm:因为node_modules === neutron_star

    均方根 删除给定目录中的所有node_modules文件夹。 或在全球范围内(如果您... -name "node_modules" -exec rm -rf '{}' + 在外壳程序中, find . -name "node_modules" -exec rm -rf '{}' +太简单了。 当然是因为:

    reggie:快速而肮脏的正则表达式复制命令

    懒得查找find -exec或xargs的语法? 雷吉不在乎。 用法 reggie "(jpg|mov)" ~/mystuff /mnt/backup/mystuff 选项 试运行:不要实际复制文件 详细:打印找到的所有文件的名称 前任: reggie --dry-run --verbose ...

    googlesites2markdown:将Google Sites HTML移至GitHub Wiki Markdown

    用法从Google Sites下载全部内容,例如,使用wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://www.somesite.org 在每个下载HTML文件上,运行googlesites2markdown &lt;file&gt; ...

Global site tag (gtag.js) - Google Analytics