`
dbaspider
  • 浏览: 262159 次
  • 性别: 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
分享到:
评论

相关推荐

    find命令使用方法

    `find`命令是Linux和Unix系统中用于在指定目录下搜索...总之,`find`命令是Linux系统中不可或缺的工具,掌握其用法能够极大地提高文件管理和维护的效率。通过灵活运用各种选项和操作,你可以轻松地定位和处理大量文件。

    linux find

    接下来,我们将深入探讨`find`命令的使用方法、选项以及应用场景。 一、基本用法 `find`命令的基本格式如下: ```bash find [路径] [选项] [表达式] ``` - `[路径]`:指定要开始查找的目录,默认为当前目录(`.`)...

    LNUX下find的用法

    本文档将详细解析 `find` 的基本用法以及各种参数的意义,以方便使用者能够更好地理解和运用此命令。 #### 基本语法 ```bash find path option [-print] [-exec-ok command {} \;] ``` - **path**:指定查找的起始...

    linux find 命令大全

    - 使用 `find` 时,如果命令较长或复杂,建议使用 `-exec` 而不是 `-exec`,因为 `-exec` 对于命令的长度有限制。 - 在处理大量文件时,使用 `-print0` 和 `xargs -0` 可以避免 `find` 命令由于命令行过长而出错。 -...

    unix find命令

    - `grep`命令与`find`结合使用可以查找包含特定字符串的文件,如: ```bash find / -name "web.xml" -type f | xargs grep "10.71.110.89" ``` 这条命令会找到所有名为"web.xml"的文件,并检查它们是否包含...

    每天一个linux命令(20):find命令之exec分享.pdf

    在实际使用中,`-exec`配合其他`find`命令的参数可以实现很多功能。例如,`-type f`用于指定只查找普通文件,`-mtime +14`则表示查找修改时间超过14天的文件。下面通过两个实例来具体说明`-exec`的用法。 **实例1**...

    find的用法很有用

    下面将详细介绍 `find` 的各个选项以及它们的使用方法。 #### 基本语法 ```sh find path option [-print] [-exec-ok command {} \;] ``` - **path**:指定搜索的起始路径。 - **option**:指定搜索条件。 - **-...

    Linux文件查找命令find,xargs详述

    `xargs`命令则常与`find`结合使用,它可以将`find`输出的文件名作为参数传递给其他命令。例如,使用`-exec`删除所有匹配的文件可能需要用户确认,而通过`xargs`传递给`rm`命令则可以直接删除。基本用法如下: ```...

    Linux中find常见用法示例.docx

    "Linux中find常见用法示例" find 命令是 Linux 系统中一个非常强大的文件搜索工具,它可以根据不同的参数和选项来查找和处理文件下面将详细介绍 find 命令的常见用法示例: 1. 基本语法:find path -option [ -...

    linux下find命令的用法

    find 命令的使用方法非常多样化,可以根据文件名、文件大小、文件类型、修改时间、权限等多种条件来查找文件。 通过文件名查找法 ---------------- find 命令可以根据文件名来查找文件,只需要使用 `-name` 选项来...

    Linux中find常见用法

    此选项使`find`在处理目录时先处理子目录中的文件,再处理目录本身,通常与`-exec`结合使用。 #### 13. `-fstype` 用于限制查找范围到特定的文件系统类型。 #### 14. `-mount` 确保`find`不会跨越不同的文件系统。...

    Linux find 命令使用小技巧一则

    在示例脚本中,作者选择了使用循环和`rm -rf`命令,这是另一种有效的方法,但需要注意的是,`rm -rf`会强制删除文件和目录,不会询问用户确认,因此务必小心使用。 脚本内容如下: ```bash #!/bin/sh cd /...

    浅谈Linux下通过find命令进行rm文件删除的小技巧

    此外,还可以使用`find`的其他选项来进一步细化搜索条件,比如`-type f`只查找文件,`-type d`只查找目录,`-name "filename"`根据文件名过滤,`-size +100M`查找大于100MB的文件等。这些选项的组合使用能帮助我们更...

    Linux中find常见用法.doc

    下面我们将详细讨论`find`命令的一些常见用法。 1. **基本结构:** `find`命令的基本格式是: ```bash find path -option [ -print ] [ -exec -ok command {} \; ] ``` 其中,`path`是你想要搜索的起始路径,`...

    linux下find命令

    其中,`path` 是要搜索的文件路径,`-option` 是 find 命令的选项,`-print` 将查找到的文件输出到标准输出,`-exec` 将查到的文件执行 command 操作,`{}` 是占位符,表示查找到的文件,`\;` 是命令的结尾。 常见...

    Find 精准查找 在文本文件中过滤,包含指定字符串的行

    本文将详细介绍 Find 命令的使用方法和选项。 Find 命令的基本格式为: ``` find [目录] [条件 1] [条件 2] ... ``` 其中,[目录] 是要搜索的目录,[条件 1]、[条件 2] 等是搜索的条件。 Find 命令的常用条件包括...

    Linux Find命令详解---教你认识强大的Linux Find命令

    记住,使用Find命令时一定要谨慎,特别是涉及到删除操作,以免误删重要文件。在实际工作中,可以结合其他命令如`grep`、`awk`等,构建更复杂的文件查找和处理流程。希望这个指南能帮助你更好地理解和运用Linux Find...

    Linux文本查找命令find的用法详解

    **输出形式**:`find`命令默认会使用`-print`选项打印出匹配的文件,但也可以结合`-exec`进行更复杂的操作,如执行其他命令。`-exec`后面跟上Linux指令,并用`{}`代表找到的文件名,通常以`\;`结束。另外,`xargs`...

    Linux中 find查找命令用法详解

    本篇文章将深入解析`find`命令的使用方法,帮助用户更好地掌握这个实用的命令。 首先,`find`命令的基本语法是: ```bash find [指定查找目录] [查找规则] [查找完后执行的action] ``` 如果不指定查找目录,`find...

Global site tag (gtag.js) - Google Analytics