`

linux中Find命令的使用教程

阅读更多
find的语法:

find [起始目录] 寻找条件 操作

还有种表述方式:find PATH OPTION [-exec COMMAND { } \;]

因为find命令会根据我们给的option,也就是寻找条件从我们给出的目录开始对其中文件及其下子目录中的文件进行递归搜索,所以我觉的这个地方说是“起始目录”是非常好的。

该命令中的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。逻辑运 算符 and、or、not 的含义为:

(1) and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条 件都满足时,寻找条件才算满足。例如:

find –name ’tmp’ –xtype c -user ’inin’

% 该命令寻找三个给定条件都满足的所有文件

(2) or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足 时,寻找条件就算满足。例如:

find –name ’tmp’ –o –name ’mina*’

% 该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。

(3) not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件 。例如:

find ! –name ’tmp’

% 该命令查询文件名不是’tmp’的所有文件。

需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。例:

find \(–name ’tmp’ –xtype c -user ’inin’ \)

我觉的现在我应该说下出了查询条件,在find中的option的内容了:

在option中,具体有参数:

-name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。

-lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、?、[ ]。

-gid n 查找属于ID号为 n 的用户组的所有文件。

-uid n 查找属于ID号为 n 的用户的所有文件。

-group ’字串’ 查找属于用户组名为所给字串的所有的文件。

-user ’字串’ 查找属于用户名为所给字串的所有的文件。

-empty 查找大小为 0的目录或文件。

-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。

-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。

-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表512字节的块。

-type x 查找类型为 x 的文件,x 为下列字符之一:

b 块设备文件

c 字符设备文件

d 目录文件

p 命名管道(FIFO)

f 普通文件

l 符号链接文件(symbolic links)

s socket文件

-xtype x 与 -type 基本相同,但只查找符号链接文件。

以时间为条件查找

-amin n 查找n分钟以前被访问过的所有文件。

-atime n 查找n天以前被访问过的所有文件。

-cmin n 查找n分钟以前文件状态被修改过的所有文件。

-ctime n 查找n天以前文件状态被修改过的所有文件。

-mmin n 查找n分钟以前文件内容被修改过的所有文件。

-mtime n 查找n天以前文件内容被修改过的所有文件。

-print:将搜索结果输出到标准输出。

例子:在root以及子目录查找不包括目录/root/bin的,greek用户的,文件类型为普通文件的,3天之前的名为test-find.c的文件,并将结构输出,find命令如下:

find / -name "test-find.c" -type f -mtime +3 -user greek -prune /root/bin -print

当然在这其中,-print是一个默认选项,我们不必刻意去配置它。

我们再看一下exec选项:

-exec:对搜索的结构指令指定的shell命令。注意格式要正确:"-exec 命令 {} \;"

在}和\之间一定要有空格才行;

{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。

例子:对上述例子搜索出来的文件进行删除操作,命令如下:

find / -name "test-find.c" -type f -mtime +3 -user greek -prune /root/bin -exec rm {} \;

find命令指令实例:

find . - name ‘main*’ - exec more {} \;

% 查找当前目录中所有以main开头的文件,并显示这些文件的内容。

find . \(- name a.out - o - name ‘*.o’\)> - atime +7 - exec rm {} \;

% 删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。

% 命令中的“.”表示当前目录,此时 find 将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。

% “\(” 和 “\)” 表示括号(),其中的 “\” 称为转义符。之所以这样写是由于对 Shell 而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。

% “-name a.out” 是指要查找名为a.out的文件;

% “-name ‘*.o’” 是指要查找所有名字以 .o 结尾的文件。

这两个 -name 之间的 -o 表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件。

% find命令在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间 是否在7天以前(条件 -atime +7),若是,则对该文件执行命令 rm(-exec rm {} \;)。

其中 {} 代表当前查到的符合条件的文件名,\;则是语法所要求的。

% 上述命令中第一行的最后一个 \ 是续行符。当命令太长而在一行写不下时,可输入一个 \,之后系统将显示一个 >,指示用户继续输入命令。
分享到:
评论

相关推荐

    Linux实用教程(入门教程) Linux常用命令

    通过阅读《Linux基础命令教程豪华版》、《Linux常用命令全集》、《Linux实用培训教程第一部分》和《Linux实用培训教程第二部分》等资料,你可以更深入地学习Linux的使用,逐步成为Linux操作的高手。记住,实践是检验...

    Linux基础命令教程豪华版

    本教程“Linux基础命令教程豪华版”将帮助初学者掌握这一关键技能。 1. **文件与目录操作** - `cd`: 改变当前工作目录,例如`cd /home/user`进入用户目录。 - `ls`: 列出目录内容,使用`ls -l`显示详细信息。 - ...

    linuxf教程linux基本上操作使用命令、获取命令使用帮助、linux常用基础命令MD文件

    本教程将围绕“Linux基本操作使用”、“获取命令使用帮助”以及“常用基础命令”这三个主题进行深入讲解,旨在帮助初学者快速上手Linux。 一、Linux基本操作使用 在Linux中,命令行界面(CLI)是最主要的交互方式...

    linux基础命令入门教程(图文)

    本教程以图文形式详细介绍了Linux的入门知识,适合贵州大学网络工程专业的学生,如周睿这样的初学者使用。 首先,我们要了解Linux的桌面环境,这里提到的是Ubuntu 9.04版本,它使用GNOME桌面环境,提供了一个美观且...

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

    在Linux系统中,`find`命令是一个非常实用的工具,用于在文件系统中搜索指定的文件或目录。它提供了丰富的参数,可以根据文件的名称、类型、大小、时间戳等多种属性进行筛选。下面我们将详细讲解`find`命令的用法。 ...

    KaLi linux命令在线教程.docx

    在虚拟机环境中使用Kali Linux时,安装VMware Tools可以显著提高性能并提供更好的集成体验。 **安装步骤:** 1. 确保已经正确安装了Kali Linux虚拟机。 2. 在VMware中选择“安装VMware Tools”选项。 3. 挂载提供的...

    linux电子书(命令大全+初级教程+新手管理员指南)

    "Linux命令大全.chm" 是一个非常实用的参考资料,其中列出了大量的Linux命令,包括它们的功能、参数和使用示例。Linux命令行的强大之处在于它的可扩展性和灵活性,理解并熟练运用各种命令是成为Linux高手的关键。这...

    SUSELINUX9.3官方中文教程.rar

    在这个教程中,你将学习到如何有效地在SUSE Linux 9.3环境下进行操作,包括文件管理、文本编辑、系统维护等多个方面。以下是对描述中提及的一些关键知识点的详细说明: 1. **Shell**:Shell是Linux的命令行界面,...

    linux命令大全 linux菜鸟版

    "Linux命令大全 Linux菜鸟版"是为初学者准备的一份详尽的参考资料,它包含了Linux系统中的各种基本和高级命令,旨在帮助用户快速理解和应用这些命令。 Linux命令行界面,也被称为终端或Shell,是通过键盘输入指令与...

    Linux基础命令教程

    ### Linux基础命令教程知识点解析 #### 一、Shell概述 - **定义**: Shell是Linux操作系统中的用户界面,作为用户与内核之间的桥梁,接收用户的命令输入,并将其传递给内核执行。 - **作用**: 提供了一个友好的...

    linux命令大全 教程

    Linux命令大全教程是每个Linux初学者乃至进阶用户不可或缺的学习资料。它涵盖了Linux操作系统中广泛使用的命令行工具,这些工具是高效操作系统的基石。Linux命令行界面提供了强大的功能,允许用户通过文本指令来执行...

    Linux命令简明教程

    ### Linux命令简明教程知识点概览 #### 一、Linux基础概述 - **Linux系统简介**:Linux是一种自由和开放源代码的操作系统,基于POSIX和UNIX标准,它支持多种平台,包括个人计算机、服务器、移动设备等。本文档主要...

    linux常用命令详解教程

    ### Linux常用命令详解教程 #### 一、引言 Linux作为一种强大的开源操作系统,在服务器领域有着广泛的应用,并且因其稳定性、安全性和灵活性而受到广大技术人员的青睐。本文将深入讲解Linux中的常用命令及其应用...

    linux 命令大全,linux命令,linux教程

    本教程将详细讲解Linux命令大全,帮助初学者快速上手,也为经验丰富的用户提供查阅参考。 一、基础命令 1. `ls`:列出目录内容,常用选项 `-l` 显示详细信息,`-a` 显示所有文件包括隐藏文件。 2. `cd`:改变当前...

    Linux命令大全搜索工具 v1.5.1_Linuxshell_linux_

    此外,还有许多高级命令,如“find”用于在文件系统中查找文件,“ps”显示进程状态,“top”实时监控系统资源使用情况,“sudo”以管理员权限执行命令,“tar”用于打包和解压文件等。 在学习和使用Linux时,了解...

    Linux常用命令教程合集

    这个压缩包文件集合提供了丰富的Linux学习资源,包括"Linux从入门到精通"、"Linux命令大全"以及"Linux C 常用库函数手册"等,帮助用户从零基础到进阶使用。 "Linux从入门到精通"教程通常会涵盖Linux的基本概念,如...

    Linux基础命令教程 豪华版

    Linux的基础命令教程是学习Linux系统管理的起点,掌握这些命令对于日常使用Linux和进行系统管理是至关重要的。随着对Linux命令熟悉程度的加深,用户可以进一步探索更高级的功能,如编写Shell脚本、配置网络服务、...

    linux教程 linux常用命令大全

    本文将深入探讨“Linux教程”中的“常用命令大全”,旨在帮助初学者和有经验的用户巩固和扩展他们的Linux技能。 一、Linux基本操作 Linux的基本操作主要通过命令行界面(CLI)进行,这与Windows和Mac OS等图形用户...

Global site tag (gtag.js) - Google Analytics