用匹配表达式查找文件。
find [ -H | -L ] Path ... [ Expression ]
find 命令对每个指定的 Path 参数递归搜索目录树,搜索与布尔表达式匹配的文件,布尔表达式是使用以下文本中给出的项写的。当 find 命令递归下降目录结构时,它不会下降到那些只是象征性链接到当前层次结构的目录。find 命令的输出取决于 Expression 参数指定的项。
find 命令不支持 4.3 BSD 快速查找语法。
-H | 导致为命令行上多次遇到的每个符号链接求值的文件信息和文件类型成为链接引用的文件的信息和类型,而不是链接本身的。如果引用的文件不存在,则文件信息与类型将用于链接本身。不在命令行上的所有符号链接的文件信息将是链接本身的信息。 |
-L | 导致为每个符号链接求值的文件信息和文件类型成为链接引用的文件的信息和类型,而不是链接本身的。 |
这些布尔表达式和变量描述了 find 命令的搜索边界,如在 Path 和 Expression 参数定义的那样。
\( Expression \) | 如果括号中的表达式为真,则求值为真。 |
-cpio Device | 将当前的文件写入到在 cpio 命令格式中的指定设备。 |
-depth | 始终求值为真。导致目录层次下降,这样该目录里的所有条目在该目录本身受影响之前被影响。当 find 命令和 cpio 命令一起被用来传输那些包含在无写权限的目录中的文件时,这是很有用的。 |
-exec 命令 | 如果被指定的命令运行或者返回 0 值作为退出状态时,求值为真。指定的命令的末尾必须加上括上引号的分号或者转义分号。命令参数 {} (花括号) 将被当前的路径名所替代。 |
-follow | 导致符号的和硬链接被跟随: |
-fstype 类型 | 如果包含文件的文件系统是一个指定的类型,其中 Type 变量有一个 jfs(日志文件系统)或者 nfs(网络文件系统)的值,求值为真。 |
-group Group | 求值为真,如果文件属于指定的组。如果 Group 变量的值是数字,并且没有在 /etc/group 文件中出现,它就被解释成组标识。 |
-nogroup | 求值为真,如果文件属于一个组但是不在 /etc/group 数据库中。 |
-inum n | 求值为真,如果文件有一个索引节点与变量 n 的值匹配。 |
-links n | 求值为真,如果文件有指定数目的链接。请参考 ln 命令中关于链接的描述。 |
-ls | 始终求值为真。导致当前路径名与其关联统计信息一起被打印出来。这些统计信息包括以下内容:
如果这个文件是特殊文件,则大小字段将包括主要的和次要的设备号。如果这个文件是个符号链接,则这个链接到的文件的路径名称打印时前面有 ->(连字符,大于号)。格式化与 ls -filds 命令的相类似,然而格式化在内部执行,不执行 ls 命令,因此和 ls 命令在输出中的不同可能存在,例如保护方式。 |
-name File | 求值为真,如果 File 变量的值与文件名称匹配。可以使用通常的 shell 文件名生成字符(请参阅 sh 命令)。当从 shell 使用 find 命令时,模式应该括在引号中或者转义字符中。反斜线符号 (\) 在模式中会被用作一个转义字符。您可以使用通配符(模式匹配),只要它们在引号以内。请参阅《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『『用通配符和元字符进行模式匹配』』以获取更多有关使用通配符的信息。
在诸如 [a-z] 的表达式中,连字符表示依照当前的整理顺序 通过。整理顺序可以定义等价的类以供在字符范围中使用。有关整理顺序和等价类的更多信息,请参阅 AIX 5L Version 5.2 National Language Support Guide and Reference 中的 『National Language Support OverviewWow』。 |
-newer File | 求值为真,如果修改当前文件的时间比 File 变量指定的更近。 |
-ok Command | 和 -exec 表达式一样,除了 find 命令询问您是否应当启动指定的命令。一个肯定的响应会启动这个命令。指定命令的末尾必须加上括在引号中的分号或 \;(反斜杠转义分号)。 |
-perm [ - ] OctalNumber |
求值为真,如果文件的许可权代码恰好与 OctalNumber 参数匹配(请参阅 chmod 命令以获取文件许可权的解释)。如果可选的 -(连字符)存在,并且至少已设置了这些许可权,那么这个表达式的求值为真。OctalNumber 参数可达到 9 个八进制数。 |
-perm [ - ] Mode |
方式参数用于表示文件的模式位。它的格式和 chmod 描述的符号方式 < 操作数一样,并且如下解释: 最初,假定模板清除了所有文件方式位。Op 符号有下列功能:
op 符号 - 不能是方式的首字母。这避免了前导连字符的不明确性。因为最初的方式是所有的位都关闭,所以没有需要使用 - 作为首字母的符号方式。 如果连字符省略了,当文件许可位恰好与结果模板的值匹配时,最初求值为真。否则,如果方式以连字符作为前缀,则当至少结果模板中的所有的位都在文件许可位中设置时,最初求值为真。 Mode 参数与 chmod 命令的语法是一样的。如果文件恰好有这些许可权,这个表达式求值为真。如果可选的 -(连字符)存在,则当至少设置了这些许可时,这个表达式求值为真。 |
始终求值为真。显示当前路径名。find 命令采用 -print 表达式,除非存在 -exec, - ls 或 -ok 表达式。 | |
-prune | 始终求值为真。如果当前路径名是一个目录,停止它的下降。如果指定 -depth 标志,则忽略 -prune 标志。 |
-size n | 如果文件是指定的 n 个块长(每块 512 字节),则求值为真。为了比较,文件大小四舍五入到相比差异最小的块的大小。 |
-size nc | 如果文件恰好是指定的 n 个字节长,则求值为真。将 c 添加到变量 n 的末尾表示文件的大小是以单独的字节而非块来测量的。 |
-atime n | 如果初始化时间减去文件访问时间,除以 86400 秒(废弃任何余数)等于 n,则求值为真。86400 秒为 24 小时。
注:
-atime 的定义更改为符合“单一 Unix 规范,V3”。如果文件在 24 小时的 n-1 到 n 的倍数的时间里被访问,则 -atime 的先前行为的求值为真。
可通过将 XPG_UNIX98 变量设置为 ON 来获得此选项的先前行为。 |
-ctime n | 如果文件的索引节点(状态信息)在 24 小时周期的指定数目内被改动,则求值为真。 |
-mtime n | 如果初始化时间减去文件修改时间,除以 86400 秒(废弃任何余数)等于 n,则求值为真。86400 秒为24 小时。
注:
-mtime 的定义更改为符合“单一 Unix 规范,V3”。如果文件在 24 小时的 n-1 到 n 的倍数的时间里被修改,则 -mtime 的先前行为求值为真。
可通过将 XPG_UNIX98 变量设置为 ON 来获得此选项的先前行为。 |
-type Type | 如果 Type 变量指定了以下值之一,则求值为真: |
-user User | 如果文件属于指定用户,则求值为真。如果 User 变量的值是数字,并且不作为登录名字在 /etc/passwd 文件中出现,它解释为用户标识。 |
-nouser | 如果文件属于不在 /etc/passwd 数据库中的用户,求值为真。 |
-xdev | 始终求值为真。避免 find 命令从一个与 Path 参数指定的不同的文件系统中遍历。 |
以下表达式可通过使用以下优先权降序排列的运算符组合在一起:
此命令返回以下出口值:
0 | 所有的 Path 参数都被成功遍历。 |
>0 | 发生错误。 |
find . -print -name SCCS -prune
find . -size 414c -print
find /u/arnold -name "*.c" -exec rm {} \;
每次 find 命令识别一个带有后缀名 .c 的文件,然后 rm 命令删除这个文件。rm 命令是为表达式 -exec 指定的唯一参数。{} (花括号) 表示当前的路径名称。
find -H dirlink -print
find -L dirlink -print
find -H dirlink -newer dir2
/usr/bin/find | 包含 find 命令。 |
/bin/find | 到 find 命令上的符号链接。 |
/etc/group | 包含所有已知组的列表。 |
/etc/passwd | 包含所有已知用户的列表。 |
AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的 Backup Overview for System Management 介绍归档方法,包括 cpio 命令的使用。
AIX 5L Version 5.2 Files Reference 中的 Directories Overview 描述文件系统中目录的结构和特征。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『文件类型』描述文件、文件类型、如何命令文件和如何使用通配符。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『输入输出重定向概述』描述操作系统是如何处理输入和输出的。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『Shell 概述』描述 shell、不同类型的 shell 和解释 shell 如何影响解释命令的方式。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『文件和目录访问方式』介绍文件所有权和访问文件和目录的权限。