`

bash编程之 find文件查找工具

 
阅读更多

find 文件查找工具,通过遍历指定路径下的文件系统完成查找,速度慢,但执行精确查找;

 

语法:find [OPTIONS] [查找路径] [查找条件] [处理动作]

查找路径:默认为当前目录

查找条件:默示查找所有文件

处理动作:显示至屏幕

 

1 查找条件:

1.1 根据文件名字查找:

-name “文件名称”: 支持使用globbing元字符 *, ?, [], [^]

-iname "文件名称":查找时忽略文件名称字符大小写

-regex PATTERN: 查找时以PATTERN匹配整个文件路径字串,而不仅仅包含文件本身

 

1.2. 根据属主、属组来查找:

-user USERNAME: 查找属主为指定用户的文件; 

-group GROUPNAME: 查找属组为指定组的文件;

-uid UserID

-gid GroupID

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

 

1.3. 组合条件:条件之间要有逻辑关系

与: -a, 同时满足

或:-o, 满足一个条件

非: -not, !, 表示不符合条件

例:

-not A -a -not B = -not \( A -o B \)

-not A -o -not B = -not \( A -a B \)

 

1.4. 根据文件类型查找:

-type TYPE

f: 普通文件, -type f

d: 目录文件

l: 符号链接文件

s: 套接字文件

b: 块设备文件

c: 字符设备文件

p:命令管道文件

 

 

1.5 根据文件大小来查找:

-size [+|-]#UNIT

UNIT(常用单位):k, M, G

#UNIT: #-1 < x <= #

-#UNIT: x <= #-1

+#UNIT:x > #

 

例如:find / -size 10M   显示9M-10M之间大小的文件

find / -size -10M  显示小于等于9M大小的文件

find / -size +10M  显示大于10M大小的文件

 

1.6 根据时间戳查找:

以“天”为单位:

-atime [+|-]#   即access time, 文件被读取或者执行的时间

-atime #   #天到#+1天之间访问的文件 

-atime -#  #天内访问的文件

-atime +#  #天之前访问的文件

实例:

-atime 0   0天到1天之间访问的文件,即24小时内访问的文件 

-atime 3   3天到4天之间访问的文件,

-atime -3  3天内访问的文件

-atime +3  3天之前访问的文件

-mtime [+|-]#   即modify time,指文件内容被修改的时间。

-ctime [+|-]#   即change time,文件状态改变时间,如通过chmod修改文件属性

 

以“分钟”为单位:

-amin [+|-]#

-mmin [+|-]#

-cmin [+|-]#

 

使用stat可以查看文件的atime、ctime、mtime。

例:

stat ~/.bashrc

 

也可以使用ls查看文件的atime、ctime、mtime。

ls –l ~/.bashrc指示的是文件的modify time。

ls –lu ~/.bashrc 或者ls –l –time=atime~/.bashrc指示的是文件的access time

ls –lc ~/.bashrc 或者ls –l –time=ctime~/.bashrc 指示的是文件的change time

 

 

2. 对查找到的文件进行处理

find  命令  | xargs 命令

例:

find ~/ -size +10M | xargs du -sh  列出文件的大小

find ~/ -size +10M | xargs rm -rf  删除找到的文件

find ~/ -size +10M | xargs -i cp {} /tmp/ 将找到的文件复制到/tmp/目录下,其中-i的作用是将管道中的数据导入{}中

 

分享到:
评论

相关推荐

    Bash工具指南.pdf

    首先是find工具,它是一款在UNIX系统中非常有用的命令,用于在目录树中查找符合条件的文件,这些条件包括文件名、类型、权限、修改时间、大小等。find命令的使用语法包含path和expression两个主要部分。path部分默认...

    2009年图书:精通Bash编程

    15. **文件系统操作**: 如何在脚本中创建、删除、移动和检查文件和目录,以及使用`find`命令查找文件。 总之,《精通Bash编程》这本书将带你深入了解Bash的强大功能,并教你如何利用这些功能编写高效、可维护的脚本...

    LinuxBash脚本编程大全

    此外,书中还会详细介绍Bash的内置命令,如`cd`用于切换目录,`echo`用于输出文本,`grep`用于搜索文本模式,`find`用于查找文件,`sed`进行流编辑,以及`awk`用于处理文本数据等。掌握这些命令的使用能够大大提高...

    linux bash脚本编程大全

    比如,`cd`, `mkdir`, `rm`, `mv`, `cp`等命令用于导航和管理文件系统,而`find`, `grep`, `sed`和`awk`等工具则用于查找、过滤和处理文本。 此外,脚本中会经常使用到I/O重定向,例如`&gt;`用于覆盖输出,`&gt;&gt;`用于...

    高级Bash脚本编程指南

    - **find命令**:根据指定条件查找文件。 - **globbing**:通配符匹配,如`*`代表任意字符,`?`代表单个字符。 ### 8. 环境变量和shell变量 - **环境变量**:影响整个shell会话,如`PATH`定义可执行文件路径。 - *...

    bash脚本编程学习之算术运算与文件查找

    相比之下,`find`命令是实时查找工具,它会遍历指定的起始目录及其子目录。`find`提供了更丰富的查找条件,如文件名、大小、类型、从属关系、权限等。例如,`-name`用于按文件名查找,`-user`和`-group`用于查找特定...

    文件的批量查找

    批量查找文件的核心在于使用命令行工具,例如在Linux或Unix系统中广泛使用的`find`命令,在Windows环境下可以使用`dir`或`powershell`的`Get-ChildItem`命令。`find`命令允许用户指定起点(通常是从当前目录开始),...

    bash v203- bash的windows本地实现

    6. **命令行效率**:在Windows环境中使用Bash和UnxUtils,对于习惯Unix/Linux命令行工具的开发者来说,可以提高工作效率,特别是在进行脚本编程、文件管理和系统管理时。 7. **安装与使用**:虽然bash v203不需要...

    bash脚本编写教程

    Bash(Bourne-Again SHell)是Linux和Unix系统中最常用的Shell之一,它提供了丰富的命令行工具和脚本编程能力。对于初学者来说,学习Bash脚本编写是非常有价值的,因为这能帮助你自动化日常任务,提高工作效率。 ##...

    Bash的特性介绍BashInfo

    8. **find**:查找满足特定条件的文件。 9. **echo**:输出字符串到标准输出。 10. **cat**:显示文件内容或连接多个文件并输出到标准输出。 #### 五、Bash配置文件 Bash支持多种配置文件,其中最常见的是`~/....

    第24讲6.2.22文件习题 编程实现搜索文件.doc

    在IT领域,文件操作是日常工作中非常基础且重要的部分,...总的来说,无论是Windows还是Linux,都有相应的命令行工具和编程接口来实现文件搜索。理解这些基本概念和命令,将有助于你在实际工作中高效地管理和处理文件。

    Bash+Sed+Awk(1).pdf

    Linux提供了一些用于文件查找和文本处理的工具,例如find命令和grep工具家族(grep、egrep、fgrep)。这些工具能够帮助用户快速找到符合特定模式的文件或文本内容。 ### 正则表达式 正则表达式(Regular ...

    Bash新手指南 中文 新手必看

    - **find**:在文件系统中查找文件。 - **sed**:流编辑器,常用于替换文本。 - **awk**:强大的文本处理工具,用于数据分析和格式化。 ### 6. 函数和别名 - **函数**:自定义的命令集合,可以重复使用。 - **别名...

    Node.js-find-in是Node的文件文本搜索

    `find-in` 就是一个专门为 Node.js 设计的工具,用于高效地在文件系统中进行文本搜索。 `find-in` 模块的主要功能是在指定目录及其子目录下查找包含特定文本的文件。这对于开发者来说非常实用,例如在大量源代码中...

    详解Bash命令行处理 Linux命令大全(修改版)

    `find`命令能根据指定条件查找文件,如按名字、时间或大小等。 管道`|`是Bash的一大特色,它能把一个命令的输出作为另一个命令的输入。例如,`ls -l | grep ".txt"`会列出所有包含".txt"的文件的详细信息。 Bash还...

    在一个特定目录下查找文件的例子

    总之,查找特定目录下的文件是IT工作中的基础技能,无论是使用命令行工具还是编程实现,都需要对文件系统有深入的理解。同时,通过分析给出的文件列表,我们可以推测这是一个基于C++开发的小型编辑器项目,涉及UI...

    linux-一行bash命令集合的仓库

    - `find`: 在指定路径下查找文件,支持多种条件。 - `grep`: 在文件中搜索特定模式的行。 - `locate`: 快速查找文件,依赖于数据库更新。 3. **权限和所有权**: - `chmod`: 修改文件或目录的权限。 - `chown`...

    linux 文件管理和bash脚本实验报告(超详细!!附word文件)

    5. 用户信息查询:编写`user_info`脚本来查找用户是否存在,如果存在,显示其主目录。如果用户不存在,检查/home下是否存在同名目录。使用`id`命令检查用户,`find`命令检查目录。 ```bash user_info() { user="$1...

    在Unix上搜索含有关键字的文件

    另一个有用的命令是`ack`,它是一个专为源代码搜索设计的工具,对于编程项目特别有用。`ack`通常比`grep`更快,并且默认忽略版本控制目录和编译生成的文件。如果你已经安装了`ack`,可以这样使用: ```bash ack '...

Global site tag (gtag.js) - Google Analytics