http://bbs.51cto.com/thread-371325-1.html
用途
用匹配表达式查找文件。
语法
find [ -H | -L ] Path ... [ Expression ]
描述
find 命令对每个指定的 Path 参数递归搜索目录树,搜索与布尔表达式匹配的文件,
布尔表达式是使用以下文本中给出的项写的。当 find 命令递归下降目录结构时,
它不会下降到那些只是象征性链接到当前层次结构的目录。
find 命令的输出取决于 Expression 参数指定的项。
find 命令不支持 4.3 BSD 快速查找语法。
标志
-H 导致为命令行上多次遇到的每个符号链接求值的文件信息和文件类型成为链接引用的文件的信息和类型,
而不是链接本身的。如果引用的文件不存在,则文件信息与类型将用于链接本身。
不在命令行上的所有符号链接的文件信息将是链接本身的信息。
-L 导致为每个符号链接求值的文件信息和文件类型成为链接引用的文件的信息和类型,
而不是链接本身的。
表达式项
这些布尔表达式和变量描述了 find 命令的搜索边界,如在 Path 和 Expression 参数定义的那样。
注:
在下面的定义中,变量 n 指定了一个十进制的整数,它能表示为 +n(超过 n)、-n(少于 n)或者 n(恰好等于 n)。
\( Expression \) 如果括号中的表达式为 True,则求值为 true。
-cpio Device 将当前的文件写入到在 cpio 命令格式中的指定设备。
-depth 始终求值为 True。导致目录层次下降,这样该目录里的所有条目在该目录本身受影响之前被影响。
当 find 命令和 cpio 命令一起被用来传输那些包含在无写权限的目录中的文件时,这是很有用的。
-ea 如果文件具有访问控制信息(ACL)或扩展属性(EA)集,则求值为 True。
-exec Command 如果被指定的命令运行或者返回 0 值作为退出状态时,求值为 True。
指定命令的末尾必须标有括在引号内的分号、转义的分号或者加号。包含两个字符 {}(花括号)的参数后面
必须跟有标在指定命令末尾处的加号。命令参数 {}(花括号)将由当前路径名替换。
-follow 导致符号的和硬链接被跟随:
-fstype Type 如果包含文件的文件系统是一个指定的类型,其中 Type 变量有一个 jfs(日志文件系统)
或者 nfs(网络文件系统)的值,求值为 True。
-group Group 求值为 True,如果文件属于指定的组。如果 Group 变量的值是数字,
并且没有在 /etc/group 文件中出现,它就被解释成组标识。
-nogroup 求值为 True,如果文件属于一个组但是不在 /etc/group 数据库中。
-inum n 求值为 True,如果文件有一个索引节点与变量 n 的值匹配。
-links n 求值为 True,如果文件有指定数目的链接。请参考 ln 命令中关于链接的描述。
-long 当结合 -ls 使用时,打印每个用户/组名称的全部可用字符,而不是截断至前 8 个字符。
-ls 始终求值为 True。导致当前路径名与其关联统计信息一起被打印出来。这些统计信息包括以下内容:
索引节点数目
按千字节计的大小(1024 字节)
保护方式
硬链接的数目
用户
组
按字节计的大小
修改时间
如果这个文件是特殊文件,则大小字段将包括主要的和次要的设备号。如果该文件是符号链接,
则打印该链接到的文件的路径名时前面有 ->(连字符,大于)符号。格式化与 ls -filds 命令的相类似,
然而格式化在内部执行,不执行 ls 命令,因此和 ls 命令在输出中的不同可能存在,例如保护方式。
-name File 求值为 True,如果 File 变量的值与文件名称匹配。可以使用通常的 shell 文件名生成字符
(请参阅 sh 命令)。当从 shell 使用 find 命令时,模式应该括在引号中或者转义字符中。反斜杠符号
(\) 在模式中会被用作一个转义字符。您可以使用通配符(模式匹配),只要它们在引号以内。
有关使用通配符的更多信息,请参阅《操作系统与设备管理》中的『带有通配符和元字符的模式匹配』。
在诸如 [a-z] 的表达式中,连字符表示依照当前的整理顺序 通过。整理顺序可以定义等价的类以供在字符范围中使用。
有关整理顺序和等价类的更多信息,请参阅《AIX 5L V5.3 本地语言支持指南和参考大全》中的『本地语言支持概述』。
-newer File 求值为 True,如果修改当前文件的时间比 File 变量指定的更近。
-ok Command 和 -exec 表达式一样,除了 find 命令询问您是否应当启动指定的命令。
一个肯定的响应会启动这个命令。指定命令的末尾必须加上括在引号中的分号或 \;(反斜杠转义分号)。
-perm [ - ] OctalNumber 求值为 True,如果文件的许可权代码恰好与 OctalNumber 参数匹配
(请参阅 chmod 命令以获取文件许可权的解释)。如果可选的 -(连字符)存在,
并且至少已设置了这些许可权,则这个表达式的求值为 true。OctalNumber 参数可达到 9 个八进制数。
-perm [ - ] Mode 方式参数用于表示文件的模式位。它的格式和 chmod 描述的符号方式
最初,假定模板清除了所有文件方式位。Op 符号有以下功能:
+
在模板中设置相应的方式位
-
清除相应的位
=
设置相应的方式位,不考虑进程文件模式创建掩码的内容。
op 符号 - 不能是方式的首字母。这避免了前导连字符的不明确性。因为最初的方式是所有的位都关闭,所以没有需要使用
- 作为首字母的符号方式。
如果连字符省略了,当文件许可位恰好与结果模板的值匹配时,最初求值为 True。否则,如果方式以连字符作为前缀,
则当至少结果模板中的所有的位都在文件许可位中设置时,最初求值为 True。
Mode 参数与 chmod 命令的语法是一样的。如果文件恰好有这些许可权,这个表达式求值为 True。
如果可选的 -(连字符)存在,则当至少设置了这些许可时,这个表达式求值为 True。
-print 始终求值为 True。显示当前路径名。find 命令采用 -print 表达式,除非存在 -exec, - ls 或 -ok 表达式。
-prune 始终求值为 True。如果当前路径名是一个目录,停止它的下降。如果指定 -depth 标志,则忽略 -prune 标志。
-size n 如果文件是指定的 n 个块长(每块 512 字节),则求值为 True。为了比较,
文件大小四舍五入到相比差异最小的块的大小。
-size nc 如果文件恰好是指定的 n 个字节长,则求值为 True。将 c 添加到变量 n 的末尾表示文件的大小
是以单独的字节而非块来测量的。
-atime n 如果初始化时间减去文件访问时间,除以 86400 秒(废弃任何余数)等于 n,则求值为 True。86400 秒为 24 小时。
注:
已更改 -atime 的定义来符合 Single UNIX Specification V3。如果文件在 24 小时的 n-1 到 n 的倍数的时间里被访问,
则 -atime 的先前行为的求值为 True。在缺省情况下,find -atime 按照好像它确实在 UNIX03 前面那样起作用。
可以通过将环境变量 XPG_SUS_ENV 设置为 ON 以及将 XPG_UNIX98 设置为 OFF 来获取 UNIX03 行为。
可通过将 XPG_UNIX98 变量设置为 ON 来获得此选项的先前行为。
-ctime n 如果文件的索引节点(状态信息)在 24 小时周期的指定数目内被改动,则求值为 True。
-mtime n 如果初始化时间减去文件修改时间,除以 86400 秒(废弃任何余数)等于 n,则求值为 True。86400 秒为 24 小时。
注:
已更改 -mtime 的定义来符合 Single UNIX Specification V3。如果文件在 24 小时的 n-1 到 n 的倍数的时间里被修改,
则 -mtime 的先前行为的求值为 True。在缺省情况下,find -mtime 按照好像它确实在 UNIX03 前面那样起作用。
可以通过将环境变量 XPG_SUS_ENV 设置为 ON 以及将 XPG_UNIX98 设置为 OFF 来获取 UNIX03 行为。
可通过将 XPG_UNIX98 变量设置为 ON 来获得此选项的先前行为。
-amin Number 如果在 Number-1 到 Number 分钟内已访问文件,则求值为 True。例如,如果文件在 1 到 2 分钟内已被访问,
则 -amin 2 为 true。
-cmin Number 如果在指定分钟数内更改文件索引节点(状态信息),则求值为 True。
-mmin Number 如果在 Number-1 到 Number 分钟中已修改文件,则求值为 True
-type Type 如果 Type 变量指定了以下值之一,则求值为 True:
b
块特殊文件
c
字符特别文件
d
目录
f
无格式文件
l
符号链接
p
FIFO(指定的管道)
s
套接字
-user User 如果文件属于指定用户,则求值为 True。如果 User 变量的值是数字,并且不作为登录名字
在 /etc/passwd 文件中出现,它解释为用户标识。
-nouser 如果文件属于不在 /etc/passwd 数据库中的用户,求值为 True。
-xdev 始终求值为 True。避免 find 命令从一个与 Path 参数指定的不同的文件系统中遍历。
以下表达式可通过使用以下优先权降序排列的运算符组合在一起:
(表达式)一个表达式和运算符的附加组(括号对于 shell 是特定的,并且需要反斜杠转义序列)。
! 表达式 ― 某个表达式取反(‘!’是一元“非”运算符)。
表达式 [ -a ] 表达式 ― 表达式的串联(AND 运算由两个初始量的并列默示或者明确的以 -a 来规定)。
表达式 -o 表达式 ― 初始量的交替;-o 是 OR 运算符。如果第一个表达式是 true,就不会对第二个表达式求值。
注:
当一起使用 find 和 cpio 命令的时候,当将 -L 选项与 cpio 命令一起使用时,您必须将 -follow
选项与 cpio 命令一起使用,反之亦然。不一起使用这两个选项会造成不期望的结果。如果没有表达式,
-print 就用作缺省表达式。例如,如果给定的表达式不包含任何初始量 -exec、-o k 或 -print,
则那些给定的表达式将被替换为(给定表达式)-print。-user、 -group 和 -newer 每个初始量只计算一次它们各自的参数。
使用以参数 -exec 或者 -ok 指定的命令不会影响到同一个文件中的后续初始量。
退出状态
此命令返回以下出口值:
0 所有的 Path 参数都被成功遍历。
>0 发生错误。
示例
要用一个给定的基本文件名称来列出文件系统中的所有文件,请输入:
find / -name .profile -print
该命令将搜索整个文件系统并且写出以 .profile 命名的所有文件的完整路径名称。/(斜线)指示 find 命令
搜索根目录及其所有子目录。要节约时间,最好通过指定您认为那些文件可能存在的文件目录的方式来限定搜索。
要列出当前目录树中有特殊许可权代码的那些文件,请输入:
find . -perm 0600 -print
该命令会列举出那些所有者才有读、写权限的文件的名字。.(点)让 find 命令搜索当前目录及其子目录。
请参阅 chmod 命令以获取许可权代码的说明。
要用特定的许可权代码来搜索几个目录中的文件,请输入:
find manual clients proposals -perm -0600 -print
该命令将列举出那些有所有者读写权限和其他可能的权限的文件名称。搜索 manual、clients 和proposals 目录和它们的子目录。
在前一个示例中,-perm 0600 只选择那些许可权代码完全与 0600 匹配的文件。在此例中,-perm -0600
选择具有允许 0600 和其他高于 0600 级别的访问的许可权代码的文件。这也与许可权代码 0622 和 2744 匹配。
要列出当前目录中在当前 24 小时的时间内更改过的所有文件,请输入:
find . -ctime 1 -print
要搜索那些有多个链接的常规文件,请输入:
find . -type f -links +1 -print
该命令将列举出那些有超过一个链接(-links+1)的普通文件的名字(-type f)。
注:
每个目录至少有两个链接:它父目录的入口链接和它自己的 .(点)条目。ln 命令解释多个文件链接。
要找到那些路径名称包含 find 的所有可访问的文件,请输入:
find . -name '*find*' -print
要除去所有那些以 a.out 或者 *.o 命名的文件,这些文件有一周没被访问并且不是使用 nfs 安装的,请输入:
find / \( -name a.out -o -name '*.o' \) -atime +7 ! -fstype nfs -exec rm {} \;
注:
在表达式 -atime 中使用的数是 +7。如果您想让这个命令在那些超过一个星期(7 个 24 小时)没被访问的文件上运行,
这就是正确的命令行。
要打印在当前目录或者低于当前目录的所有文件的路径名称,这其中不包括名为 SCCS 或者在 SCCS 目录中的目录,
请输入:
find . -name SCCS -prune -o -print
要打印在当前目录或者低于当前目录的所有文件的路径名,并且包括在名为 SCCS 的目录中的文件,
请输入:
find . -print -name SCCS -prune
要搜索那些恰好是 414 个字节长的所有文件,请输入:
find . -size 414c -print
要找到并删除在您的主目录中后缀为 .c 的每个文件,请输入:
find /u/arnold -name "*.c" -exec rm {} \;
每次 find 命令识别一个带有后缀名 .c 的文件,然后 rm 命令删除这个文件。rm 命令是为表达式 -exec
指定的唯一参数。{} (花括号) 表示当前的路径名称。
在此示例中,dirlink 是到目录 dir 的符号链接。可通过在命令行引用符号链接 dirlink 列出 dir 中的文件。
要进行此操作,请输入:
find -H dirlink -print
在此示例中,dirlink 是到目录 dir 的符号链接。要列出 dirlink 中遍历 dir 下包含任何符号链接的文件层次结构的文件,
请输入:
find -L dirlink -print
要确定符号链接 dirlink 引用的文件 dir1 是否比 dir2 新,请输入:
find -H dirlink -newer dir2
注:
因为使用了 -H 标志,时间数据不从 dirlink 收集,而从 dir1(遍历符号链接时找到此文件)收集。
要以带有扩展用户和组名称的 ls 格式生成当前目录中文件的列表,请输入:
find . -ls -long
要列出当前目录中带有 ACL/EA 集的文件,请输入:
find . -ea
文件
/usr/bin/find 包含 find 命令。
/bin/find 到 find 命令上的符号链接。
/etc/group 包含所有已知组的列表。
/etc/passwd 包含所有已知用户的列表。
用匹配表达式查找文件。
语法
find [ -H | -L ] Path ... [ Expression ]
描述
find 命令对每个指定的 Path 参数递归搜索目录树,搜索与布尔表达式匹配的文件,
布尔表达式是使用以下文本中给出的项写的。当 find 命令递归下降目录结构时,
它不会下降到那些只是象征性链接到当前层次结构的目录。
find 命令的输出取决于 Expression 参数指定的项。
find 命令不支持 4.3 BSD 快速查找语法。
标志
-H 导致为命令行上多次遇到的每个符号链接求值的文件信息和文件类型成为链接引用的文件的信息和类型,
而不是链接本身的。如果引用的文件不存在,则文件信息与类型将用于链接本身。
不在命令行上的所有符号链接的文件信息将是链接本身的信息。
-L 导致为每个符号链接求值的文件信息和文件类型成为链接引用的文件的信息和类型,
而不是链接本身的。
表达式项
这些布尔表达式和变量描述了 find 命令的搜索边界,如在 Path 和 Expression 参数定义的那样。
注:
在下面的定义中,变量 n 指定了一个十进制的整数,它能表示为 +n(超过 n)、-n(少于 n)或者 n(恰好等于 n)。
\( Expression \) 如果括号中的表达式为 True,则求值为 true。
-cpio Device 将当前的文件写入到在 cpio 命令格式中的指定设备。
-depth 始终求值为 True。导致目录层次下降,这样该目录里的所有条目在该目录本身受影响之前被影响。
当 find 命令和 cpio 命令一起被用来传输那些包含在无写权限的目录中的文件时,这是很有用的。
-ea 如果文件具有访问控制信息(ACL)或扩展属性(EA)集,则求值为 True。
-exec Command 如果被指定的命令运行或者返回 0 值作为退出状态时,求值为 True。
指定命令的末尾必须标有括在引号内的分号、转义的分号或者加号。包含两个字符 {}(花括号)的参数后面
必须跟有标在指定命令末尾处的加号。命令参数 {}(花括号)将由当前路径名替换。
-follow 导致符号的和硬链接被跟随:
-fstype Type 如果包含文件的文件系统是一个指定的类型,其中 Type 变量有一个 jfs(日志文件系统)
或者 nfs(网络文件系统)的值,求值为 True。
-group Group 求值为 True,如果文件属于指定的组。如果 Group 变量的值是数字,
并且没有在 /etc/group 文件中出现,它就被解释成组标识。
-nogroup 求值为 True,如果文件属于一个组但是不在 /etc/group 数据库中。
-inum n 求值为 True,如果文件有一个索引节点与变量 n 的值匹配。
-links n 求值为 True,如果文件有指定数目的链接。请参考 ln 命令中关于链接的描述。
-long 当结合 -ls 使用时,打印每个用户/组名称的全部可用字符,而不是截断至前 8 个字符。
-ls 始终求值为 True。导致当前路径名与其关联统计信息一起被打印出来。这些统计信息包括以下内容:
索引节点数目
按千字节计的大小(1024 字节)
保护方式
硬链接的数目
用户
组
按字节计的大小
修改时间
如果这个文件是特殊文件,则大小字段将包括主要的和次要的设备号。如果该文件是符号链接,
则打印该链接到的文件的路径名时前面有 ->(连字符,大于)符号。格式化与 ls -filds 命令的相类似,
然而格式化在内部执行,不执行 ls 命令,因此和 ls 命令在输出中的不同可能存在,例如保护方式。
-name File 求值为 True,如果 File 变量的值与文件名称匹配。可以使用通常的 shell 文件名生成字符
(请参阅 sh 命令)。当从 shell 使用 find 命令时,模式应该括在引号中或者转义字符中。反斜杠符号
(\) 在模式中会被用作一个转义字符。您可以使用通配符(模式匹配),只要它们在引号以内。
有关使用通配符的更多信息,请参阅《操作系统与设备管理》中的『带有通配符和元字符的模式匹配』。
在诸如 [a-z] 的表达式中,连字符表示依照当前的整理顺序 通过。整理顺序可以定义等价的类以供在字符范围中使用。
有关整理顺序和等价类的更多信息,请参阅《AIX 5L V5.3 本地语言支持指南和参考大全》中的『本地语言支持概述』。
-newer File 求值为 True,如果修改当前文件的时间比 File 变量指定的更近。
-ok Command 和 -exec 表达式一样,除了 find 命令询问您是否应当启动指定的命令。
一个肯定的响应会启动这个命令。指定命令的末尾必须加上括在引号中的分号或 \;(反斜杠转义分号)。
-perm [ - ] OctalNumber 求值为 True,如果文件的许可权代码恰好与 OctalNumber 参数匹配
(请参阅 chmod 命令以获取文件许可权的解释)。如果可选的 -(连字符)存在,
并且至少已设置了这些许可权,则这个表达式的求值为 true。OctalNumber 参数可达到 9 个八进制数。
-perm [ - ] Mode 方式参数用于表示文件的模式位。它的格式和 chmod 描述的符号方式
最初,假定模板清除了所有文件方式位。Op 符号有以下功能:
+
在模板中设置相应的方式位
-
清除相应的位
=
设置相应的方式位,不考虑进程文件模式创建掩码的内容。
op 符号 - 不能是方式的首字母。这避免了前导连字符的不明确性。因为最初的方式是所有的位都关闭,所以没有需要使用
- 作为首字母的符号方式。
如果连字符省略了,当文件许可位恰好与结果模板的值匹配时,最初求值为 True。否则,如果方式以连字符作为前缀,
则当至少结果模板中的所有的位都在文件许可位中设置时,最初求值为 True。
Mode 参数与 chmod 命令的语法是一样的。如果文件恰好有这些许可权,这个表达式求值为 True。
如果可选的 -(连字符)存在,则当至少设置了这些许可时,这个表达式求值为 True。
-print 始终求值为 True。显示当前路径名。find 命令采用 -print 表达式,除非存在 -exec, - ls 或 -ok 表达式。
-prune 始终求值为 True。如果当前路径名是一个目录,停止它的下降。如果指定 -depth 标志,则忽略 -prune 标志。
-size n 如果文件是指定的 n 个块长(每块 512 字节),则求值为 True。为了比较,
文件大小四舍五入到相比差异最小的块的大小。
-size nc 如果文件恰好是指定的 n 个字节长,则求值为 True。将 c 添加到变量 n 的末尾表示文件的大小
是以单独的字节而非块来测量的。
-atime n 如果初始化时间减去文件访问时间,除以 86400 秒(废弃任何余数)等于 n,则求值为 True。86400 秒为 24 小时。
注:
已更改 -atime 的定义来符合 Single UNIX Specification V3。如果文件在 24 小时的 n-1 到 n 的倍数的时间里被访问,
则 -atime 的先前行为的求值为 True。在缺省情况下,find -atime 按照好像它确实在 UNIX03 前面那样起作用。
可以通过将环境变量 XPG_SUS_ENV 设置为 ON 以及将 XPG_UNIX98 设置为 OFF 来获取 UNIX03 行为。
可通过将 XPG_UNIX98 变量设置为 ON 来获得此选项的先前行为。
-ctime n 如果文件的索引节点(状态信息)在 24 小时周期的指定数目内被改动,则求值为 True。
-mtime n 如果初始化时间减去文件修改时间,除以 86400 秒(废弃任何余数)等于 n,则求值为 True。86400 秒为 24 小时。
注:
已更改 -mtime 的定义来符合 Single UNIX Specification V3。如果文件在 24 小时的 n-1 到 n 的倍数的时间里被修改,
则 -mtime 的先前行为的求值为 True。在缺省情况下,find -mtime 按照好像它确实在 UNIX03 前面那样起作用。
可以通过将环境变量 XPG_SUS_ENV 设置为 ON 以及将 XPG_UNIX98 设置为 OFF 来获取 UNIX03 行为。
可通过将 XPG_UNIX98 变量设置为 ON 来获得此选项的先前行为。
-amin Number 如果在 Number-1 到 Number 分钟内已访问文件,则求值为 True。例如,如果文件在 1 到 2 分钟内已被访问,
则 -amin 2 为 true。
-cmin Number 如果在指定分钟数内更改文件索引节点(状态信息),则求值为 True。
-mmin Number 如果在 Number-1 到 Number 分钟中已修改文件,则求值为 True
-type Type 如果 Type 变量指定了以下值之一,则求值为 True:
b
块特殊文件
c
字符特别文件
d
目录
f
无格式文件
l
符号链接
p
FIFO(指定的管道)
s
套接字
-user User 如果文件属于指定用户,则求值为 True。如果 User 变量的值是数字,并且不作为登录名字
在 /etc/passwd 文件中出现,它解释为用户标识。
-nouser 如果文件属于不在 /etc/passwd 数据库中的用户,求值为 True。
-xdev 始终求值为 True。避免 find 命令从一个与 Path 参数指定的不同的文件系统中遍历。
以下表达式可通过使用以下优先权降序排列的运算符组合在一起:
(表达式)一个表达式和运算符的附加组(括号对于 shell 是特定的,并且需要反斜杠转义序列)。
! 表达式 ― 某个表达式取反(‘!’是一元“非”运算符)。
表达式 [ -a ] 表达式 ― 表达式的串联(AND 运算由两个初始量的并列默示或者明确的以 -a 来规定)。
表达式 -o 表达式 ― 初始量的交替;-o 是 OR 运算符。如果第一个表达式是 true,就不会对第二个表达式求值。
注:
当一起使用 find 和 cpio 命令的时候,当将 -L 选项与 cpio 命令一起使用时,您必须将 -follow
选项与 cpio 命令一起使用,反之亦然。不一起使用这两个选项会造成不期望的结果。如果没有表达式,
-print 就用作缺省表达式。例如,如果给定的表达式不包含任何初始量 -exec、-o k 或 -print,
则那些给定的表达式将被替换为(给定表达式)-print。-user、 -group 和 -newer 每个初始量只计算一次它们各自的参数。
使用以参数 -exec 或者 -ok 指定的命令不会影响到同一个文件中的后续初始量。
退出状态
此命令返回以下出口值:
0 所有的 Path 参数都被成功遍历。
>0 发生错误。
示例
要用一个给定的基本文件名称来列出文件系统中的所有文件,请输入:
find / -name .profile -print
该命令将搜索整个文件系统并且写出以 .profile 命名的所有文件的完整路径名称。/(斜线)指示 find 命令
搜索根目录及其所有子目录。要节约时间,最好通过指定您认为那些文件可能存在的文件目录的方式来限定搜索。
要列出当前目录树中有特殊许可权代码的那些文件,请输入:
find . -perm 0600 -print
该命令会列举出那些所有者才有读、写权限的文件的名字。.(点)让 find 命令搜索当前目录及其子目录。
请参阅 chmod 命令以获取许可权代码的说明。
要用特定的许可权代码来搜索几个目录中的文件,请输入:
find manual clients proposals -perm -0600 -print
该命令将列举出那些有所有者读写权限和其他可能的权限的文件名称。搜索 manual、clients 和proposals 目录和它们的子目录。
在前一个示例中,-perm 0600 只选择那些许可权代码完全与 0600 匹配的文件。在此例中,-perm -0600
选择具有允许 0600 和其他高于 0600 级别的访问的许可权代码的文件。这也与许可权代码 0622 和 2744 匹配。
要列出当前目录中在当前 24 小时的时间内更改过的所有文件,请输入:
find . -ctime 1 -print
要搜索那些有多个链接的常规文件,请输入:
find . -type f -links +1 -print
该命令将列举出那些有超过一个链接(-links+1)的普通文件的名字(-type f)。
注:
每个目录至少有两个链接:它父目录的入口链接和它自己的 .(点)条目。ln 命令解释多个文件链接。
要找到那些路径名称包含 find 的所有可访问的文件,请输入:
find . -name '*find*' -print
要除去所有那些以 a.out 或者 *.o 命名的文件,这些文件有一周没被访问并且不是使用 nfs 安装的,请输入:
find / \( -name a.out -o -name '*.o' \) -atime +7 ! -fstype nfs -exec rm {} \;
注:
在表达式 -atime 中使用的数是 +7。如果您想让这个命令在那些超过一个星期(7 个 24 小时)没被访问的文件上运行,
这就是正确的命令行。
要打印在当前目录或者低于当前目录的所有文件的路径名称,这其中不包括名为 SCCS 或者在 SCCS 目录中的目录,
请输入:
find . -name SCCS -prune -o -print
要打印在当前目录或者低于当前目录的所有文件的路径名,并且包括在名为 SCCS 的目录中的文件,
请输入:
find . -print -name SCCS -prune
要搜索那些恰好是 414 个字节长的所有文件,请输入:
find . -size 414c -print
要找到并删除在您的主目录中后缀为 .c 的每个文件,请输入:
find /u/arnold -name "*.c" -exec rm {} \;
每次 find 命令识别一个带有后缀名 .c 的文件,然后 rm 命令删除这个文件。rm 命令是为表达式 -exec
指定的唯一参数。{} (花括号) 表示当前的路径名称。
在此示例中,dirlink 是到目录 dir 的符号链接。可通过在命令行引用符号链接 dirlink 列出 dir 中的文件。
要进行此操作,请输入:
find -H dirlink -print
在此示例中,dirlink 是到目录 dir 的符号链接。要列出 dirlink 中遍历 dir 下包含任何符号链接的文件层次结构的文件,
请输入:
find -L dirlink -print
要确定符号链接 dirlink 引用的文件 dir1 是否比 dir2 新,请输入:
find -H dirlink -newer dir2
注:
因为使用了 -H 标志,时间数据不从 dirlink 收集,而从 dir1(遍历符号链接时找到此文件)收集。
要以带有扩展用户和组名称的 ls 格式生成当前目录中文件的列表,请输入:
find . -ls -long
要列出当前目录中带有 ACL/EA 集的文件,请输入:
find . -ea
文件
/usr/bin/find 包含 find 命令。
/bin/find 到 find 命令上的符号链接。
/etc/group 包含所有已知组的列表。
/etc/passwd 包含所有已知用户的列表。
本文详细介绍了find命令的使用方法,包括其语法、标志、表达式项等内容。find命令用于在文件系统中查找匹配指定条件的文件。
1644

被折叠的 条评论
为什么被折叠?



