Linux find命令详解

find是Unix/Linux命令行工具箱中最棒的工具之一,该命令对于编写shell脚本所起到的功用不可小视。

工作方式

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

使用方法

$ find base_path

base_path可以是任意路径(例如/home/slynux),find会从该位置开始向下查找。

$ find . -print
# 打印文件和目录的列表

.指定当前目录,..指定父目录。这是Unix文件系统中的约定用法。
-print指明打印出匹配文件的文件名(路径)。

根据文件名或正则表达式进行搜索

选项-name的参数指定了文件名所必须匹配的字符串。我们可以将通配符作为参数使用。*.txt能够匹配所有以.txt结尾的文件名。

$ find /home/slynux -name "*.txt" -print

find命令有一个选项 -iname(忽略字母大小写),该选项的作用和 -name类似,只不过在匹配名字时会忽略大小写。

否定参数

find也可以用“!”否定参数的含义。例如:

$ find . ! -name "*.txt" -print

根据文件类型搜索

Unix类系统将一切都视为文件。文件具有不同的类型,例如普通文件、目录、字符设备、块设备、符号链接、硬链接、套接字以及FIFO等。
-type可以对文件搜索进行过滤。借助这个选项,我们可以为find命令指明特定的文件匹配类型。
例如,只列出所有的目录:

$ find . -type d -print

文件类型与类型参数对照表

文件类型 类型参数
普通文件 f
符号链接 l
目录 d
字符设备 c
块设备 b
套接字 s
FIFO p

你可能感兴趣的:(Linux find命令详解)