英语法语西班牙语

Ad


OnWorks 网站图标

查找 - 在云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行查找

这是命令 find ,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


find - 在目录层次结构中搜索文件

概要


发现 [-H] [-L] [-P] [-D debugopts] [-Olevel] [起点...] [表达式]

商品描述


本手册页记录了 GNU 版本的 发现。 GNU 发现 搜索目录树
通过从左到右评估给定的表达式,以每个给定的起点为根,
根据优先规则(见操作者部分),直到结果已知
(左边是假的 操作,适用于 or),此时 发现 移动
到下一个文件名。 如果没有指定起始点,则`.' 假设。

如果您在使用 发现 在安全很重要的环境中(例如,如果您
正在使用它来搜索其他用户可写的目录),您应该阅读
findutils 文档的“安全注意事项”一章,称为 查找
并带有 findutils。 该文件还包括更多细节和
讨论而不是本手册页,因此您可能会发现它是更有用的信息来源。

配置


-H, -L-P 选项控制符号链接的处理。 命令行参数
以下这些被视为要检查的文件或目录的名称,直到
以“-”开头的第一个参数,或参数“(”或“!”。该参数和任何
以下参数被视为描述要搜索的内容的表达式。
如果没有给出路径,则使用当前目录。 如果没有给出表达式,则
表达 -打印 使用(但您可能应该考虑使用 -打印0 代替,
反正)。

本手册页讨论了表达式列表中的“选项”。 这些选项控制
的行为 发现 但在最后一个路径名之后立即指定。 五个
“真实”选项 -H, -L, -P, -D-O 如果有的话,必须出现在第一个路径名之前。 一个
双破折号 -- 也可用于表示任何剩余参数都不是选项
(尽管确保所有起点都以“./”或“/”开头通常更安全,如果
您在起点列表中使用通配符)。

-P 从不遵循符号链接。 这是默认行为。 什么时候 发现 检查或
打印一个文件的信息,该文件是一个符号链接,使用的信息
应取自符号链接本身的属性。

-L 跟随符号链接。 什么时候 发现 检查或打印有关文件的信息,
所使用的信息应取自链接到的文件的属性
点,而不是来自链接本身(除非它是损坏的符号链接或 发现 is
无法检查链接指向的文件)。 使用此选项意味着
-无叶. 如果您以后使用 -P 选项, -无叶 仍将有效。 如果 -L
有效并且 发现 在执行期间发现到子目录的符号链接
search,将搜索符号链接指向的子目录。

当。。。的时候 -L 选项有效, -类型 谓词将始终与
符号链接指向的文件类型而不是链接本身(除非
符号链接已损坏)。 可能导致符号链接变为
坏了 发现 正在执行(例如 -删除) 会引起混淆
行为。 使用 -L 导致 -l名称-ilname 谓词总是返回
假。

-H 不要跟随符号链接,除非在处理命令行参数时。
什么时候 发现 检查或打印有关文件的信息,使用的信息应为
取自符号链接本身的属性。 唯一的例外
行为是当命令行上指定的文件是符号链接时,并且
链接可以解决。 对于这种情况,所使用的信息取自
无论链接指向什么(即遵循链接)。 有关的信息
如果符号链接指向的文件,则链接本身用作后备
无法审查。 如果 -H 是有效的,并且是指定的路径之一
命令行是一个目录的符号链接,该目录的内容将
被检查(当然 -maxdepth 0 会阻止这种情况)。

如果超过其中之一 -H, -L-P 指定,每个覆盖其他; 最后一个
出现在命令行上生效。 因为它是默认的,所以 -P 选项应该
被认为是有效的,除非 -H or -L 已指定。

GNU 发现 在处理命令行本身期间经常使用 stats 文件,之前
任何搜索已经开始。 这些选项也会影响这些参数的处理方式。
具体来说,有许多测试比较命令行上列出的文件
针对我们目前正在考虑的文件。 在每种情况下,指定的文件
命令行将被检查并且它的一些属性将被保存。 如果
命名文件实际上是一个符号链接,并且 -P 选项有效(或者如果两者都没有
-H 也不 -L 指定),用于比较的信息将取自
符号链接的属性。 否则,它将从属性中取出
链接指向的文件。 如果 发现 无法点击链接(例如因为它有
权限不足或链接指向不存在的文件)
将使用链接本身。

当。。。的时候 -H or -L 选项 ,那恭喜你, in 影响, 任何 象征 链接 上市 作为论据
-较新 将被取消引用,时间戳将从文件中获取
符号链接点。 同样的考虑适用于 -新的XY, -再者-新.

-跟随 选项具有类似的效果 -L,虽然它在
它出现(也就是说,如果 -L 没有使用但是 -跟随 是,出现在后面的任何符号链接
-跟随 在命令行上将被取消引用,而在它之前的则不会)。

-D 调试选项
打印诊断信息; 这有助于诊断问题的原因
发现 不是在做你想做的事。 调试选项列表应该是逗号
分开了。 版本之间不保证调试选项的兼容性
的 findutils。 有关有效调试选项的完整列表,请参阅输出 发现
-D 帮助. 有效的调试选项包括

帮助解释调试选项

tree 以其原始和优化的形式显示表达式树。

stat 在文件被检查时打印消息 统计统计 系统调用。
发现 程序会尽量减少此类调用。

opt 打印与表达式优化相关的诊断信息
树; 请参阅 -O 选项。

rate 打印一个摘要,指示每个谓词成功或失败的频率。

-奥莱夫
启用查询优化。 这 发现 程序重新排序测试以加快执行速度
在保持整体效果的同时; 也就是说,具有副作用的谓词不是
相对于彼此重新排序。 每次优化时执行的优化
级别如下。

0 相当于优化级别 1。

1 这是默认的优化级别,对应于传统的
行为。 表达式被重新排序,以便仅基于名称进行测试
文件(例如 -芋头-正则表达式) 首先执行。

2 任何 -类型 or -x类型 在任何测试之后执行测试仅基于
文件名,但在任何需要信息的测试之前
节点。 在许多现代版本的 Unix 上,文件类型由
读取目录() 所以这些谓词的计算速度比谓词快
这需要先统计文件。 如果您使用 -文件类型 FOO 谓词和
指定文件系统类型 FOO 未知(即存在于
`/ etc / mtab') 当时 发现 开始,该谓词等价于
-假.

3 在此优化级别,启用了基于成本的完整查询优化器。
修改测试顺序,以便执行廉价(即快速)测试
如有必要,首先执行和稍后执行更昂贵的。 在里面
每个成本带,谓词根据
他们是否有可能成功。 为了 -o, 谓词是
可能成功的评估更早,并且对于 -a, 谓词是
可能失败的评估更早。

基于成本的优化器对任何给定测试的可能性有一个固定的想法
成功。 在某些情况下,概率考虑了
测试(例如, -类型 f 被认为比成功的可能性更大 -类型 c).
目前正在评估基于成本的优化器。 如果实际上没有
提高性能 发现,它将再次被删除。 反过来,
经证明可靠、稳健和有效的优化可以在
随着时间的推移降低优化级别。 但是,默认行为(即
优化级别 1) 在 4.3.x 版本系列中不会改变。 这
findutils 测试套件运行所有测试 发现 在每个优化级别和
确保结果相同。

表达


起始点列表之后的命令行部分是 表达。 这是
一种描述我们如何匹配文件以及我们如何处理文件的查询规范
匹配的。 表达式由一系列事物组成:

测试 测试返回 true 或 false 值,通常基于文件的某些属性
我们正在考虑。 这 -empty 例如,仅当当前文件为真时测试才为真
是空的。

行动
动作有副作用(例如在标准输出上打印一些东西)和
返回 true 或 false,通常基于它们是否成功。
-打印 操作例如在标准上打印当前文件的名称
输出。

全局选项
全局选项影响测试和操作的任何部分指定的操作
命令行。 全局选项总是返回 true。 这 -深度 选项
例子使 发现 以深度优先的顺序遍历文件系统。

位置选项
位置选项 a 仅影响测试或跟随它们的操作。 位置的
选项总是返回真。 这 -正则表达式 选项例如是位置,
为稍后出现的调节表达式指定正则表达式方言
在命令行上。

运营商
运算符将表达式中的其他项连接在一起。 它们包括用于
例子 -o (意思是逻辑或)和 -a (意思是逻辑与)。 操作员在哪里
失踪, -a 假设。

如果整个表达式不包含除 -修剪 or -打印, -打印 is
对整个表达式为真的所有文件执行。

-删除 动作也像一个选项(因为它暗示 -深度).

位置 配置
位置选项总是返回 true。 它们只影响稍后发生的测试
命令行。

-开始
测量时间(对于 -胺, -时间, -cmmin, -ctime, -分钟Mtime时光网)从
从今天开始而不是从 24 小时前开始。 此选项仅影响测试
稍后出现在命令行上。

-跟随
已弃用; 使用 -L 选项。 取消引用符号链接。 暗示
-无叶。 该 -跟随 选项仅影响出现在它之后的那些测试
命令行。 除非 -H or -L 选项已指定,位置
-跟随 选项改变了行为 -较新 谓词; 列出的任何文件
的论点 -较新 如果它们是符号链接,将被取消引用。 相同
考虑适用于 -新的XY, -再者-新。 同样, -类型
谓词将始终与符号链接的文件类型匹配
指向而不是链接本身。 使用 -跟随 导致 -l名称 -ilname
谓词总是返回false。

-正则表达式 类型
更改理解的正则表达式语法 -正则表达式-正则表达式 测试哪些
稍后在命令行上发生。 要查看已知的正则表达式类型,
使用 -正则表达式 帮助. Texinfo 文档(见 SEE ALSO) 解释含义
各种类型的正则表达式的区别和区别。

-警告,-nowarn
打开或关闭警告消息。 这些警告仅适用于命令行
使用,而不是任何条件 发现 搜索时可能会遇到
目录。 默认行为对应于 -警告 如果标准输入是
tty,并到 -警告 否则。 如果出现与命令行使用相关的警告消息
产生,退出状态 发现 不受影响。 如果 POSIXLY_CORRECT
设置环境变量,并且 -警告 is 用过的, it is 不能 指定 哪一个, if
任何, 警告 be 积极的。

全球 配置
全局选项总是返回 true。 全局选项即使对发生的测试也有效
之前在命令行上。 为防止混淆,全局选项应在
开始点列表之后的命令行,就在第一次测试之前,位置选项
或行动。 如果你在其他地方指定一个全局选项, 发现 会发出警告
消息解释这可能会令人困惑。

全局选项出现在起点列表之后,因此不是同一种
选项为 -L,例如。

-d -depth 的同义词,用于与 FreeBSD、NetBSD、MacOS X 和 OpenBSD 兼容。

-depth 在目录本身之前处理每个目录的内容。 -delete 操作
也暗示 -深度.

-帮助,--帮助
打印命令行使用的摘要 发现 并退出。

-ignore_readdir_race
通常情况下, 发现 当它无法统计文件时将发出错误消息。 如果你
给这个选项和一个文件被删除之间的时间 发现 读取名称
目录中的文件以及它尝试统计文件的时间,没有错误消息
将发行。 这也适用于给定名称的文件或目录
在命令行上。 此选项在命令行执行时生效
读取,这意味着您不能使用此搜索文件系统的一部分
选项和部分关闭此选项(如果您需要这样做,您将
需要发出两个 发现 取而代之的是命令,一个有选项,一个没有它)。

-最大深度 各级
最多下降 各级 (一个非负整数)低于
起点。 -最大深度 0
意味着仅将测试和操作应用于起点本身。

-最小深度 各级
不要在低于以下级别的级别应用任何测试或操作 各级 (非负
整数)。 -最小深度 1 意味着处理除起点之外的所有文件。

-mount 不要下降其他文件系统上的目录。 替代名称 -xdev,为
与其他一些版本的兼容性 发现.

-noignore_readdir_race
关闭效果 -ignore_readdir_race.

-无叶
不要通过假设目录包含的子目录少于 2 个来优化
他们的硬链接数。 搜索文件系统时需要此选项
不遵循 Unix 目录链接约定,例如 CD-ROM 或 MS-DOS 文件系统
或 AFS 卷安装点。 普通 Unix 文件系统上的每个目录都有在
至少 2 个硬链接:它的名称和它的“.” 入口。 此外,它的子目录
(如果有)每个都有一个链接到该目录的“..”条目。 什么时候 发现 正在检查一个
目录,在它的 statted 比目录的链接少 2 个子目录之后
计数,它知道目录中的其余条目是非目录
(目录树中的`leaf'文件)。 如果只需要文件名
检查过,不需要统计; 这大大增加了
搜索速度。

-版本,--版本
打印 发现 版本号并退出。

-xdev 不要下降其他文件系统上的目录。

试验
一些测试,例如 -新的XY-同一个文件, 允许比较文件
当前正在检查和一些在命令行上指定的参考文件。 什么时候
使用这些测试,参考文件的解释由
选项 -H, -L-P 和任何以前的 -跟随, 但只检查参考文件
一次,在命令行被解析的时候。 如果无法检查参考文件
(例如, 统计(2) 系统调用失败),发出错误信息,并且 发现
以非零状态退出。

数字参数可以指定为

+n 对于大于 n,

-n 少于 n,

n 正是为了 n.

-胺 n
上次访问文件 n 几分钟前。

-再者 文件
上次访问文件的时间比 文件 被修改。 如果 文件 是象征性的
链接和 -H 选项还是 -L 选项生效,文件的访问时间
它指向总是被使用。

-时间 n
上次访问文件 n*24 小时前。 当 find 算出有多少 24 小时
上次访问文件的时间段之前,任何小数部分都将被忽略,因此要匹配
-时间 +1, 一个文件必须至少被访问过 几天前。

-cmmin n
上次更改文件状态 n 几分钟前。

-新 文件
文件的状态上次更改的时间比 文件 被修改。 如果 文件 是一个
符号链接和 -H 选项还是 -L 选项生效,状态改变
它指向的文件的时间总是被使用。

-ctime n
上次更改文件状态 n*24 小时前。 见评论 -时间
了解舍入如何影响文件状态更改时间的解释。

-empty 文件为空,是普通文件或目录。

- 可执行
匹配可执行文件和可搜索目录(在文件中
名称解析意义)。 这考虑了访问控制列表和其他
权限人工制品 烫发 测试忽略。 该测试利用
ACCESS(2) 系统调用,因此可以被执行 UID 映射(或
root-squashing),因为许多系统实现 ACCESS(2) 在客户端的内核和
因此无法使用服务器上保存的 UID 映射信息。 因为这
测试仅基于结果 ACCESS(2)系统调用,没有
保证此测试成功的文件实际上可以执行。

-false 总是错误的。

-文件类型 类型
文件位于类型为的文件系统上 类型. 有效的文件系统类型因人而异
不同版本的Unix; 不完整的文件系统类型列表
在某些版本的 Unix 或其他版本上接受的是:ufs、4.2、4.3、nfs、tmp、mfs、S51K、
S52K。 您可以使用 -printf 使用 %F 指令查看您的类型
文件系统。

-gid n 文件的数字组 ID 是 n.

-组 地名
文件属于组 地名 (允许使用数字组 ID)。

-ilname 模式
喜欢 -l名称,但匹配不区分大小写。 如果 -L 选项还是 -跟随
选项有效时,除非符号链接断开,否则此测试将返回 false。

-我的名字 模式
喜欢 -芋头,但匹配不区分大小写。 例如,模式‘fo*’和
“F??” 匹配文件名‘Foo’、‘FOO’、‘foo’、‘fOo’等。模式‘*foo*’
还将匹配名为“.foobar”的文件。

喝过 n
文件有 inode 号 n. 通常更容易使用 -同一个文件 代替测试。

-ipath 模式
喜欢 -路径. 但匹配不区分大小写。

-正则表达式 模式
喜欢 -正则表达式,但匹配不区分大小写。

-i全名 模式
请参见 -ipath。 这种替代方案的便携性低于 -ipath.

-链接 n
文件有 n 链接。

-l名称 模式
文件是一个符号链接,其内容与 shell 模式匹配 模式。 该
元字符不处理“/”或“.” 特别。 如果 -L 选项还是 -跟随
选项有效时,除非符号链接断开,否则此测试将返回 false。

-分钟 n
文件的数据最后被修改 n 几分钟前。

Mtime时光网 n
文件的数据最后被修改 n*24 小时前。 见评论 -时间
了解舍入如何影响文件修改时间的解释。

-芋头 模式
文件名的基础(删除前导目录的路径)与 shell 匹配
模式 模式. 由于删除了前导目录,文件名
考虑与 -芋头 永远不会包含斜杠,所以 `-name a/b' 会
从不匹配任何东西(您可能需要使用 -路径 反而)。 发出警告
如果您尝试这样做,除非设置了环境变量 POSIXLY_CORRECT。 这
元字符(`*'、`?' 和 `[]')匹配一个 `.' 在基本名称的开头(这个
是 findutils-4.2.2 的变化; 请参阅下面的标准一致性部分)。 到
忽略一个目录及其下的文件,使用 -修剪; 看一个例子
的描述 -路径. 大括号不被认为是特殊的,尽管事实上
包括 Bash 在内的一些 shell 在 shell 中注入了具有特殊含义的括号
模式。 文件名匹配是使用 匹配(3)
库函数。 不要忘记将模式括在引号中,以便
保护它免受外壳膨胀。

-较新 文件
文件的修改时间超过 文件。 如果 文件 是一个符号链接,并且 -H
选项还是 -L 选项生效,它指向的文件的修改时间
to 总是被使用。

-新的XY 参考
如果时间戳成功 X 被考虑的文件比时间戳新 Y of
文件 参考。 这些信 XY 可以是以下任何字母:

a 文件的访问时间 参考
B 文件的诞生时间 参考
c 的 inode 状态变化时间 参考

m 文件的修改时间 参考
t 参考 被直接解释为时间

某些组合无效; 例如,它对 X 成为 t。 一些
并非在所有系统上都实现了组合; 例如 B 不支持
所有系统。 如果无效或不受支持的组合 XY 被指定,一个致命的
错误结果。 时间规范被解释为参数 -d
GNU 选项 日期. 如果您尝试使用参考文件的出生时间,并且
出生时间无法确定,会导致致命错误消息。 如果您指定一个
test 是指正在检查的文件的出生时间,此测试将失败
对于任何出生时间未知的文件。

-无组
没有组对应于文件的数字组 ID。

-nouser
没有用户对应于文件的数字用户 ID。

-路径 模式
文件名匹配 shell 模式 模式. 元字符不处理 `/' 或
'.' 特别; 所以,例如,
寻找 。 -path "./sr*sc"
将为名为“./src/misc”的目录打印一个条目(如果存在)。 忽视
整个目录树,使用 -修剪 而不是检查树中的每个文件。
例如,跳过目录`src/emacs'和下的所有文件和目录
它,并打印找到的其他文件的名称,执行如下操作:
寻找 。 -path ./src/emacs -prune -o -print
请注意,模式匹配测试适用于整个文件名,从一个开始
在命令行上命名的起点。 只有使用
如果相关起点也是绝对路径,则此处为绝对路径名称。 这
意味着这个命令永远不会匹配任何东西:
查找 bar -path /foo/bar/myfile -print
查找比较 -路径 参数与目录名称和
它正在检查的文件的基本名称。 由于串联永远不会以
一个斜线, -路径 以斜杠结尾的参数将不匹配任何内容(可能除了
在命令行中指定的起点)。 谓词 -路径 也支持
通过 HP-UX 发现 并将在即将推出的 POSIX 标准版本中。

烫发 模式
文件的权限位正是 模式 (八进制或符号)。 由于完全匹配
是必需的,如果您想将此表单用于符号模式,您可能必须
指定一个相当复杂的模式字符串。 例如`-perm g=w' 只会匹配
模式为 0020 的文件(即组写入权限为
只有权限集)。 您更有可能想要使用 `/' 或 `-'
形式,例如`-perm -g=w',它匹配具有组写入的任何文件
允许。 见 示例 部分说明性示例。

-烫发 -模式
所有权限位 模式 为文件设置。 接受符号模式
以这种形式,这通常是您想要使用它们的方式。 你
如果您使用符号模式,则必须指定“u”、“g”或“o”。 见 示例 部分
一些说明性的例子。

-烫发 /模式
任何权限位 模式 为文件设置。 接受符号模式
以这种形式。 如果使用符号模式,则必须指定 `u'、`g' 或 `o'。 看
示例 部分说明性示例。 如果没有权限位 模式
设置,这个测试匹配任何文件(这里的想法是与
的行为 烫发 -000).

-烫发 +模式
这不再受支持(并且自 2005 年以来已被弃用)。 利用 烫发 /模式
代替。

-可读
匹配可读的文件。 这考虑了访问控制列表和
其他权限人工制品 烫发 测试忽略。 该测试利用
ACCESS(2) 系统调用,因此可以被执行 UID 映射的 NFS 服务器所欺骗
(或压根),因为许多系统实现 ACCESS(2) 在客户端的内核中
因此无法使用服务器上保存的 UID 映射信息。

-正则表达式 模式
文件名匹配正则表达式 模式. 这是整条路上的匹配,
不是搜索。 例如,要匹配名为“./fubar3”的文件,您可以使用
正则表达式`.*bar.' 或`.*b.*3',但不是`f.*r3'。 正则表达式
被理解 发现 默认情况下是 Emacs 正则表达式,但这可以是
随着 -正则表达式 选项。

-同一个文件 姓名
文件引用相同的索引节点 姓名。 何时 -L 实际上,这可以包括
符号链接。

-尺寸 n[cwbkMG]
文件用途 n 空间单位,四舍五入。 可以使用以下后缀:

`b' 表示 512 字节块(如果不使用后缀,这是默认值)

`c' 表示字节

`w' 表示两字节单词

`k' 表示千字节(1024 字节的单位)

`M' 表示兆字节(以 1048576 字节为单位)

`G' 表示千兆字节(1073741824 字节的单位)

大小不计算间接块,但它计算稀疏文件中的块
没有实际分配。 请记住,`%k' 和 `%b' 格式
的说明符 -printf 以不同方式处理稀疏文件。 ‘b’ 后缀总是
表示 512 字节的块而不是 1 千字节的块,这与
的行为 -ls.

像往常一样,+ 和 - 前缀表示大于和小于。 记住
大小四舍五入到下一个单位。 所以 -尺寸 1M 不等价
-尺寸 -1048576c. 前者只匹配空文件,后者匹配文件
从 1 到 1,048,575 个字节。

-true 永远正确。

-类型 c
文件类型 c:

b 块(缓冲)特殊

c 字符(无缓冲)特殊

目录

p 命名管道 (FIFO)

f 常规文件

l 符号链接; 如果 -L 选项还是 -跟随 选项是
实际上,除非符号链接被破坏。 如果你想搜索
符号链接当 -L 有效,使用 -x类型.

插座

D门(Solaris)

-uid n 文件的数字用户 ID 是 n.

-用过的 n
上次访问文件 n 上次更改其状态后的几天。

-用户 UNAME
文件归用户所有 UNAME (允许使用数字用户 ID)。

-全名 模式
参见 -path。 这种替代方案的便携性低于 -路径.

- 可写
匹配可写的文件。 这考虑了访问控制列表和
其他权限人工制品 烫发 测试忽略。 该测试利用
ACCESS(2) 系统调用,因此可以被执行 UID 映射的 NFS 服务器所欺骗
(或压根),因为许多系统实现 ACCESS(2) 在客户端的内核中
因此无法使用服务器上保存的 UID 映射信息。

-x类型 c
与...相同 -类型 除非文件是符号链接。 对于符号链接:如果
-H or -P 已指定选项,如果文件是指向类型文件的链接,则为 true c; 如果
-L 已给出选项,如果为真 c 是‘l’。 换句话说,对于象征性的
链接, -x类型 检查文件的类型 -类型 不检查。

-语境 模式
(仅限 SELinux)文件的安全上下文匹配 glob 模式.

行动
-删除
删除文件; 如果删除成功,则为 true。 如果删除失败,则显示错误消息
发出。 如果 -删除 失败, 发现的退出状态将为非零(当它
最终退出)。 用于 -删除 自动打开`-深度' 选项。

</p>: 不要忘记 find 命令行是作为表达式计算的,所以
-删除 首先将使 发现 尝试删除开始以下的所有内容
您指定的点。 当测试一个 发现 您稍后打算使用的命令行
用于 -删除,您应该明确指定 -深度 以免以后
惊喜。 因为 -删除 暗示 -深度,你不能有用地使用 -修剪
-删除 在一起。

执行 命令 ;
执行 命令; 如果返回 0 状态,则为 true。 以下所有论据 发现 ,那恭喜你,
被当作​​命令的参数,直到参数包含‘;’ 是
遭遇。 字符串“{}”被当前正在处理的文件名替换
它出现在命令的参数中的任何地方,而不仅仅是出现在参数中
它是单独的,就像在某些版本中一样 发现. 这两种结构可能都需要
被转义(使用“\”)或引用以保护它们不被 shell 扩展。
查看 示例 部分的使用示例 执行 选项。 该
指定的命令对每个匹配的文件运行一次。 该命令在
起始目录。 围绕使用存在不可避免的安全问题
执行 行动; 你应该使用 -执行目录 选项。

执行 命令 {} +
这种变体 执行 action 对选定的文件运行指定的命令,
但是命令行是通过在末尾附加每个选定的文件名来构建的; 这
命令的总调用次数将远小于
匹配的文件。 命令行的构建方式与 参数 建立
它的命令行。 命令中只允许出现一个“{}”实例。 这
命令在起始目录中执行。 如果 发现 遇到错误,这个
有时会导致立即退出,因此某些挂起的命令可能不会在
全部。 这种变体 执行 总是返回真。

-执行目录 命令 ;

-执行目录 命令 {} +
喜欢 执行,但指定的命令是从包含
匹配的文件,通常不是您启动的目录 发现。 这
一种更安全的调用命令的方法,因为它避免了竞争条件
在解析匹配文件的路径期间。 与 执行 行动,
`+' 形式 -执行目录 将构建一个命令行来处理多个匹配的
文件,但任何给定的调用 命令 将只列出存在于
同一个子目录。 如果您使用此选项,您必须确保您的 $路径
环境变量不引用“.”; 否则,攻击者可以运行任何
通过在一个目录中留下一个适当命名的文件,他们喜欢的命令
你会跑 -执行目录. 这同样适用于在 $路径 哪些是空的
或者不是绝对目录名。 如果 发现 遇到错误,这可以
有时会导致立即退出,因此一些挂起的命令可能根本无法运行。
行动的结果取决于 + 或者 ; 正在使用变体;
-执行目录 命令 {} + 总是返回真,而 -执行目录 命令 {} ; 返回真
除非 命令 返回0。

-fls 文件
真的; 喜欢 -ls 但写信给 文件 喜欢 -f打印. 输出文件总是被创建,
即使谓词从不匹配。 见 异常 文件名 对于部分
有关如何处理文件名中的异常字符的信息。

-f打印 文件
真的; 将完整的文件名打印到文件中 文件。 如果 文件 不存在时 发现 is
运行,它被创建; 如果确实存在,则将其截断。 文件名
`/dev/stdout' 和 `/开发/标准错误' 是专门处理的; 他们指的是标准
输出和标准错误输出,分别。 输出文件总是被创建,
即使谓词从不匹配。 见 异常 文件名 对于部分
有关如何处理文件名中的异常字符的信息。

-fprint0 文件
真的; 喜欢 -打印0 但写信给 文件 喜欢 -f打印. 输出文件总是
创建,即使谓词从不匹配。 见 异常 文件名 部分
有关如何处理文件名中的异常字符的信息。

-fprintf 文件 格式
真的; 喜欢 -printf 但写信给 文件 喜欢 -f打印. 输出文件总是
创建,即使谓词从不匹配。 见 异常 文件名 部分
有关如何处理文件名中的异常字符的信息。

-ls 真; 列出当前文件 ls -迪尔斯 标准输出格式。 块数
都是 1K 块,除非设置了环境变量 POSIXLY_CORRECT,其中
case 使用 512 字节的块。 见 异常 文件名 信息部分
关于如何处理文件名中的异常字符。

-好的 命令 ;
喜欢 执行 但请先询问用户。 如果用户同意,则运行该命令。 否则
只是返回假。 如果运行该命令,则其标准输入将从
的/ dev / null的.

对提示的响应与一对正则表达式匹配以
判断是肯定反应还是否定反应。 这个正则表达式是
如果设置了“POSIXLY_CORRECT”环境变量,则从系统获取,或
否则从 发现的消息翻译。 如果系统没有合适的
定义, 发现将使用自己的定义。 在任何一种情况下,
正则表达式本身的解释会受到环境的影响
变量“LC_CTYPE”(字符类)和“LC_COLLATE”(字符范围和
等价类)。

-okdir 命令 ;
喜欢 -执行目录 但首先以与 for 相同的方式询问用户 -好的. 如果用户这样做
不同意,就返回false。 如果命令运行,它的标准输入是
重定向自 的/ dev / null的.

-打印真; 在标准输出上打印完整的文件名,后跟换行符。 如果
你正在管道输出 发现 进入另一个程序,有最微弱的
您正在搜索的文件可能包含换行符,
那么你应该认真考虑使用 -打印0 选项而不是 -打印。 看
异常 文件名 部分有关如何在不寻常的字符
处理文件名。

-打印0
真的; 在标准输出上打印完整的文件名,后跟一个空字符
(而不是换行符 -打印 用途)。 这允许文件名
包含要正确解释的换行符或其他类型的空格
处理程序 发现 输出。 该选项对应于 -0 选项
参数.

-printf 格式
真的; 打印 格式 在标准输出上,解释“\”转义和“%”
指令。 字段宽度和精度可以用 `printf' C 指定
功能。 请注意,许多字段被打印为 %s 而不是 %d,
这可能意味着标志不会像您预期的那样工作。 这也意味着
`-' 标志确实有效(它强制字段左对齐)。 不像 -打印,
-printf 不会在字符串末尾添加换行符。 逃脱和
指令是:

\a 警钟。

\b 退格。

\c 立即停止从此格式打印并刷新输出。

\f 换页。

\n 换行。

\r 回车。

\t 水平标签。

\v 垂直制表符。

\0 ASCII 空。

\\ 文字反斜杠 (`\')。

\NNN ASCII 码为 NNN(八进制)的字符。

`\' 字符后跟任何其他字符被视为普通字符
字符,所以它们都被打印出来。

%% 字面百分号。

%a 文件的最后访问时间,格式为 C `ctime' 函数返回。

%Ak 指定格式的文件的最后访问时间 k, 要么是`@' 要么
C `strftime' 函数的指令。 可能的值 k ,那恭喜你,
下面列出; 其中一些可能并非在所有系统上都可用,因为
系统之间`strftime'的差异。

@ 自 1 年 1970 月 00 日,格林威治标准时间 00:XNUMX 以来的秒数,带小数部分。

时间字段:

小时 (00..23)

一小时 (01..12)

k 小时 (0..23)

l 小时 (1..12)

M 分钟 (00..59)

p 语言环境的 AM 或 PM

r 时间,12 小时制 (hh:mm:ss [AP]M)

S 秒 (00.00 .. 61.00)。 有小数部分。

T 时间,24 小时制 (hh:mm:ss.)

+ 日期和时间,以“+”分隔,例如“2004-04-28+22:22:05.0”。
这是一个 GNU 扩展。 时间以当前时区给出
(这可能会受到设置 TZ 环境变量的影响)。 这
秒字段包括小数部分。

X 语言环境的时间表示 (H:M:S)。 秒字段包括一个
小数部分。

Z 时区(例如 EDT),如果无法确定时区,则为空

日期字段:

语言环境的缩写工作日名称 (Sun..Sat)

语言环境的完整工作日名称,可变长度(周日..周六)

b 语言环境的缩写月份名称(Jan..Dec)

B 语言环境的完整月份名称,可变长度(January..December)

c 语言环境的日期和时间(Sat Nov 04 12:02:33 EST 1989)。 格式是
同为 时间(3) 等以保持与那个的兼容性
格式,秒字段中没有小数部分。

d 月中的第几天 (01..31)

D 日期 (mm/dd/yy)

h 与 b 相同

一年中的第 j 天 (001..366)

月 (01..12)

U 以星期日为一周第一天的年份周数 (00..53)

w 星期几 (0..6)

W 周数,以星期一为一周的第一天 (00..53)

x 语言环境的日期表示 (mm/dd/yy)

y 年份的最后两位数 (00..99)

Y 年 (1970...)

%b 用于此文件的磁盘空间量,以 512 字节块为单位。 自盘
空间以文件系统块大小的倍数分配,这通常是
大于 %s/512,但如果文件是稀疏的,它也可以更小
文件中。

%c 文件的最后状态更改时间,格式由 C `ctime' 返回
功能。

%Ck 文件的最后状态更改时间以指定的格式 k, 哪一个是
与 %A 相同。

%d 文件在目录树中的深度; 0 表示该文件是一个起点。

%D 文件所在的设备号(struct 的 st_dev 字段
stat),十进制。

%f 删除任何前导目录的文件名(仅最后一个元素)。

%F 文件所在的文件系统类型; 此值可用于 -fstype。

%g 文件的组名,如果组没有名称,则为数字组 ID。

%G 文件的数字组 ID。

%h 文件名的前导目录(除最后一个元素外的所有目录)。 如果文件
名称不包含斜杠(因为它在当前目录中)%h
说明符扩展为“.”。

%H 找到文件的起点。

%i 文件的 inode 编号(十进制)。

%k 用于此文件的磁盘空间量,以 1K 块为单位。 由于磁盘空间
以文件系统块大小的倍数分配,这通常是
大于 %s/1024,但如果文件是稀疏的,它也可以更小
文件中。

%l 符号链接对象(如果文件不是符号链接,则为空字符串)。

%m 文件的权限位(八进制)。 此选项使用“传统”
大多数 Unix 实现使用的数字,但如果您的特定
实现使用八进制权限位的不寻常顺序,您将
查看文件模式的实际值与输出之间的差异
%m。 通常你会希望在这个数字上有一个前导零,并且
为此,您应该使用 # 标志(例如,'%#m')。

%M 文件的权限(以符号形式,对于 ls)。 该指令是
findutils 4.2.5 及更高版本支持。

%n 文件的硬链接数。

%p 文件名。

%P 文件名及其所在起始点的名称
除去。

%s 文件的大小(以字节为单位)。

%S 文件稀疏。 这计算为 (BLOCKSIZE*st_blocks / st_size)。
对于特定长度的普通文件,您将获得的确切值是
系统依赖。 但是,通常稀疏文件的值将小于
1.0,并且使用间接块的文件可能具有更大的值
比 1.0。 用于 BLOCKSIZE 的值取决于系统,但通常是
512 字节。 如果文件大小为零,则打印的值未定义。 在
不支持 st_blocks 的系统,假设文件的稀疏性为
是 1.0。

%t 文件的最后修改时间,格式为 C `ctime' 返回
功能。

%Tk 指定格式的文件的最后修改时间 k, 哪一个是
与 %A 相同。

%u 文件的用户名,如果用户没有名字,则为数字用户 ID。

%U 文件的数字用户 ID。

%y 文件的类型(如 ls -l), U=unknown type (不应该发生)

%Y 文件类型(如 %y),加上跟随符号链接:L=loop, N=nonexistent

%Z(仅限 SELinux)文件的安全上下文。

%{ %[ %(
保留以备将来使用。

一个 `%' 字符后跟任何其他字符被丢弃,但另一个
字符被打印出来(不要依赖这个,因为更多的格式字符可能是
介绍)。 格式参数末尾的“%”会导致未定义的行为
因为没有跟随字符。 在某些地区,它可能会隐藏您的门
键,而在其他情况下,它可能会删除您正在阅读的小说的最后一页。

%m 和 %d 指令支持 # , 0+ 标志,但其他指令做
不是,即使他们打印数字。 不支持这些的数字指令
标志包括 G, U, b, D, kn. 支持和更改`-' 格式标志
字段从右对齐(这是默认值)到左对齐的对齐方式
有道理。

查看 异常 文件名 部分有关如何在不寻常的字符
处理文件名。

-修剪真; 如果文件是目录,则不要进入该目录。 如果 -深度 给出,
错误的; 没有效果。 因为 -删除 暗示 -深度,你不能有用地使用 -修剪
-删除 在一起。

-quit 立即退出。 没有子进程将继续运行,但没有更多的路径
命令行中指定的将被处理。 例如, 发现 /tmp/富
/tmp/条 -打印 -退出 只会打印 /tmp/富. 任何命令行
建立在 -执行目录 ... {} + 将在之前调用 发现 退出。 出口
status 可能为零也可能不为零,具体取决于是否已发生错误。

操作员
按优先级降序排列:

( 表达式 )
强制优先。 由于括号是 shell 所特有的,您通常会
需要引用它们。 本手册页中的许多示例使用反斜杠表示
这个目的:`\(...\)' 而不是 `(...)'。

! 表达式 真如果 表达式 是假的。 这个角色通常也需要保护
由外壳解释。

-不是 表达式
与...一样 ! 表达式,但不符合 POSIX。

表达式1 表达式2
连续两个表达式被认为是用一个隐含的“和”连接起来的; 表达式2 是不是
评估如果 表达式1 是错误的。

表达式1 -a 表达式2
与...一样 表达式1 表达式2.

表达式1 -和 表达式2
与...一样 表达式1 表达式2,但不符合 POSIX。

表达式1 -o 表达式2
要么; 表达式2 不评估如果 表达式1 是真的。

表达式1 -要么 表达式2
与...一样 表达式1 -o 表达式2,但不符合 POSIX。

表达式1 , 表达式2
列表; 两个都 表达式1表达式2 总是被评估。 的价值 表达式1 被丢弃;
列表的值是 表达式2. 逗号运算符可用于
搜索几种不同类型的东西,但遍历文件系统
层次结构只有一次。 这 -fprintf action 可以用来列出各种匹配的
项目到几个不同的输出文件。

请注意: -a 当隐式指定时(例如通过两个没有出现的测试
它们之间的显式运算符)或显式具有更高的优先级 -o。 这
意思是 发现 . -芋头 一份文件 -o -芋头 文件 -打印 永远不会打印 一份文件.

异常 文件名


的许多动作 发现 导致打印受控制的数据
其他用户。 这包括文件名、大小、修改时间等。 文件
名称是一个潜在的问题,因为它们可以包含除“\0”和“/”之外的任何字符。
文件名中的不寻常字符可能会对您的
终端(例如,更改某些终端上功能键的设置)。
如下所述,各种操作对异常字符的处理方式不同。

-print0,-fprint0
始终打印准确的文件名,不变,即使输出将
终奌站。

-ls、-fls
不寻常的字符总是被转义。 空格、反斜杠和双引号
字符使用 C 风格的转义打印(例如`\f'、`\"')。其他
使用八进制转义符打印异常字符。 其他可打印字符
(用于 -ls-fls 这些是八进制 041 和 0176 之间的字符)被打印
照原样。

-printf,-fprintf
如果输出没有到达终端,则按原样打印。 否则,
结果取决于正在使用的指令。 指令 %D、%F、%g、%G、%H、
%Y 和 %y 扩展为不受文件所有者控制的值,等等
按原样打印。 指令 %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t, %u
和 %U 的值在文件所有者的控制之下,但不能被
用于向终端发送任意数据,因此这些数据按原样打印。 这
指令 %f、%h、%l、%p 和 %P 被引用。 此引用是在相同的
方式至于 GNU ls. 这与用于的引用机制不同 -ls
-fls. 如果您能够决定用于输出的格式 发现 然后
通常使用‘\0’作为终止符比使用换行符更好,作为文件
名称可以包含空格和换行符。 的设置
`LC_CTYPE' 环境变量用于确定哪些字符需要
引。

-打印,-fprint
引用的处理方式与 for 相同 -printf-fprintf。 如果你正在使用
发现 在脚本中或在匹配文件可能具有任意
名称,您应该考虑使用 -打印0 而不是 -打印.

-好的-okdir 操作按原样打印当前文件名。 这在未来可能会改变
释放。

标准 一致性


为了最接近 POSIX 标准,您应该设置 POSIXLY_CORRECT
环境变量。 以下选项在 POSIX 标准 (IEEE Std
1003.1、2003 版):

-H 支持此选项。

-L 支持此选项。

-芋头 支持此选项,但 POSIX 一致性取决于
系统的 匹配(3)库函数。 从 findutils-4.2.2 开始,shell
元字符(例如`*'、`?' 或`[]')将匹配前导的`.',因为
IEEE PASC 解释 126 要求这样做。 这是与之前的变化
findutils 的版本。

-类型 支持的。 POSIX 指定了‘b’、‘c’、‘d’、‘l’、‘p’、‘f’和‘s’。 GNU 也找到
支持“D”,代表一个门,操作系统提供这些。

-好的 支持的。 响应的解释是根据“是”和“否”
通过设置“LC_MESSAGES”环境变量选择的模式。 当。。。的时候
`POSIXLY_CORRECT' 环境变量被设置,这些模式是系统的
肯定(是)或否定(否)响应的定义。 查看系统的
有关的文件 nl_语言信息(3),特别是YESEXPR和NOEXPR。 什么时候
`POSIXLY_CORRECT' 未设置,而是取自 发现是的
消息目录。

-较新 支持的。 如果指定的文件是符号链接,则始终取消引用它。
这与以前的行为不同,以前的行为需要从
符号链接; 请参阅下面的历史部分。

烫发 支持的。 如果未设置 POSIXLY_CORRECT 环境变量,则某些模式
支持在 POSIX 中无效的参数(例如 +a+x)
向后兼容。

其他谓词
谓词 -时间, -ctime, -深度, -组, -链接, Mtime时光网, -无组, -nouser,
-打印, -修剪, -尺寸, -用户-xdev “-atime”、“-ctime”、“-depth”、“-group”、
“-links”、“-mtime”、“-nogroup”、“-nouser”、“-perm”、“-print”、“-prune”、“-size”、
`-user' 和 `-xdev' 都受支持。

POSIX 标准指定括号`(', `)', 否定`!' 和“和”和“或”
运算符( -a, -o).

所有其他选项、​​谓词、表达式等都是 POSIX 之外的扩展
标准。 然而,许多这些扩展并不是 GNU find 所独有的。

POSIX 标准要求 发现 检测循环:

发现 实用程序应检测无限循环; 也就是说,输入一个以前的
访问的目录,它是遇到的最后一个文件的祖先。 当它
检测到无限循环, find 应将诊断消息写入标准错误
并应恢复其在层次结构中的位置或终止。

GNU 发现 符合这些要求。 包含的目录的链接数
与祖先硬链接的条目通常低于它们应有的水平
是。 这可能意味着 GNU find 有时会优化掉一个
子目录,实际上是指向祖先的链接。 自从 发现 实际上没有进入
这样的子目录,可以避免发出诊断消息。 虽然这
行为可能有点令人困惑,不太可能有人真正依赖于此
行为。 如果叶优化已关闭 -无叶, 目录项
将始终进行检查,并在适当的时候发出诊断消息。
符号链接不能用于创建文件系统循环,但如果 -L 选项或
-跟随 选项正在使用中,在以下情况下会发出诊断消息 发现 遇到一个循环
符号链接。 与包含硬链接的循环一样,叶优化通常会
意味着 发现 知道它不需要调用 STAT() or 目录目录() 在符号链接上,
所以这种诊断通常是不必要的。

-d 支持与各种 BSD 系统兼容的选项,但您应该使用
符合 POSIX 的选项 -深度 代替。

POSIXLY_CORRECT 环境变量不影响 -正则表达式 or
-正则表达式 测试,因为这些测试未在 POSIX 标准中指定。

环境 变数


LANG 为未设置或未设置的国际化变量提供默认值
空值。

LC_ALL 如果设置为非空字符串值,则覆盖所有其他字符串的值
国际化变量。

LC_COLLATE
POSIX 标准指定这个变量影响模式匹配
用于 -芋头 选项。 GNU find 使用 匹配(3) 库函数等
对“LC_COLLATE”的支持取决于系统库。 这个变量也
影响对响应的解释 -行; 而`LC_MESSAGES'变量
选择用于解释响应的实际模式 -好的是,
模式中任何括号表达式的解释都将受到影响
'LC_COLLATE'。

LC_CTYPE
此变量影响对常规中使用的字符类的处理
表达式以及 -芋头 测试,如果系统 匹配(3) 图书馆
函数支持这一点。 这个变量也影响任何解释
用于解释对响应的正则表达式中的字符类
发出的提示 -好的. `LC_CTYPE' 环境变量也会影响哪个
打印文件名时,字符被认为是不可打印的; 见
部分不寻常的文件名。

LC_消息
确定用于国际化消息的区域设置。 如果
`POSIXLY_CORRECT' 环境变量被设置,这也决定了
对提示的响应的解释 -好的 行动。

路径
确定国际化消息目录的位置。

PATH 影响搜索目录以查找被调用的可执行文件
执行, -执行目录, -好的-okdir.

POSIXLY_CORRECT
确定使用的块大小 -ls-fls。 如果 POSIXLY_CORRECT 已设置,阻止
是 512 字节的单位。 否则它们是 1024 字节的单位。

设置此变量还会关闭警告消息(即暗示 -警告)通过
默认,因为 POSIX 要求除了输出之外 -好的, 所有消息
打印在 stderr 上是诊断信息,必须导致非零退出状态。

当未设置 POSIXLY_CORRECT 时, 烫发 +zzz 被视为 烫发 /zzz 如果 +zzz
不是有效的符号模式。 当设置 POSIXLY_CORRECT 时,这样的结构是
视为错误。

当设置 POSIXLY_CORRECT 时,对提示的响应由 -好的 行动是
根据系统的消息目录解释,而不是根据
发现自己的消息翻译。

TZ 影响用于某些与时间相关的格式指令的时区
-printf-fprintf.

示例


发现 / tmp目录 -芋头 核心 -类型 f -打印 | 参数 /bin/rm -f

查找命名的文件 核心 在目录中或目录下 / tmp目录 并删除它们。 请注意,这将
如果任何文件名包含换行符、单引号或双引号,则工作不正确,
或空格。

发现 / tmp目录 -芋头 核心 -类型 f -打印0 | 参数 -0 /bin/rm -f

查找命名的文件 核心 在目录中或目录下 / tmp目录 并删除它们,处理文件名
以这样的方式,文件或目录名称包含单引号或双引号、空格或
正确处理换行符。 这 -芋头 测试在 -类型 测试以
避免必须打电话 统计(2) 在每个文件上。

发现 . -类型 f 执行 文件 '{}' \;

对当前目录中或低于当前目录的每个文件运行“文件”。 注意大括号是
用单引号括起来以保护它们不被解释为 shell 脚本
标点。 分号同样受到使用反斜杠的保护,但
在这种情况下也可以使用单引号。

发现 / \( 烫发 -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \
\( -尺寸 + 100M -fprintf /root/big.txt '%-10s %p\n' \)

只遍历文件系统一次,将 setuid 文件和目录列出到
/root/suid.txt 和大文件到 /root/big.txt.

发现 $ HOME Mtime时光网 0

在您的主目录中搜索最近二十四次修改过的文件
小时。 此命令以这种方式工作,因为自上次修改每个文件以来的时间是
除以 24 小时,剩余的部分将被丢弃。 这意味着要匹配 Mtime时光网 0,以
文件必须在过去不到 24 小时前进行修改。

发现 /宾 / usr / sbin - 可执行 \! -可读 -打印

搜索可执行但不可读的文件。

发现 . 烫发 664

搜索对其所有者和组具有读写权限的文件,但
其他用户可以读取但不能写入的内容。 满足这些条件但具有
其他权限位设置(例如,如果有人可以执行文件)将不会
匹配。

发现 . 烫发 -664

搜索对其所有者和组具有读写权限的文件,以及
其他用户可以读取,而无需考虑是否存在任何额外的权限位(对于
例如可执行位)。 例如,这将匹配模式为 0777 的文件。

发现 . 烫发 / 222

搜索可由某人(他们的所有者、他们的组或任何人)写入的文件
别的)。

发现 . 烫发 / 220
发现 . 烫发 /u+w,g+w
发现 . 烫发 /u=w,g=w

所有这三个命令都做同样的事情,但第一个使用八进制
文件模式的表示,另外两种使用符号形式。 这些命令
all 搜索可由其所有者或其组写入的文件。 文件
不必由所有者和组都可写才能匹配; 都可以。

发现 . 烫发 -220
发现 . 烫发 -g+w,u+w

这两个命令都做同样的事情; 搜索双方都可以写的文件
所有者和他们的组。

发现 . 烫发 -444 烫发 / 222 ! 烫发 / 111
发现 . 烫发 -a+r 烫发 /a+w ! 烫发 /a+x

这两个命令都搜索每个人都可读的文件( 烫发 -444 or
烫发 -a+r),至少设置一个写位 ( 烫发 / 222 or 烫发 /a+w) 但不是
任何人都可以执行( ! 烫发 / 111! 烫发 /a+x 分别)。

cd /源目录
发现 . -芋头 .快照 -修剪 -o \( \! -芋头 *~ -打印0 \)|
的cpio -pmd0 /目标目录

此命令复制内容 /源目录/目标目录, 但省略了文件和
命名的目录 .快照 (以及其中的任何内容)。 它还省略了文件或目录
谁的名字以 ~,但不是它们的内容。 构造 -修剪 -o \( ... -打印0 \)
很常见。 这里的想法是之前的表达式 -修剪 匹配的东西
将被修剪。 但是,那 -修剪 动作本身返回真,所以以下 -o
确保仅对未获得的目录评估右侧
修剪(修剪目录的内容甚至不被访问,所以它们的内容是
无关)。 右边的表达式 -o 括号内仅用于
明晰。 它强调, -打印0 行动只发生在没有发生的事情上
已可以选用 -修剪 应用于他们。 因为测试之间的默认“and”条件绑定了更多
紧比 -o,无论如何这是默认值,但括号有助于显示什么是
继续。

发现 回购/ 执行 test -d {}/.svn \; -要么 \
执行 test -d {}/.git \; -要么 执行 test -d {}/简历 \; \
-打印 -修剪

鉴于以下项目目录及其相关的 SCM 管理
目录,对项目的根执行有效搜索:

回购/项目1/CVS
回购/gnu/project2/.svn
回购/gnu/project3/.svn
回购/gnu/project3/src/.svn
回购/project4/.git

在这个例子中, -修剪 防止不必要的下降到已经存在的目录
被发现(例如我们不搜索 project3/src 因为我们已经找到
project3/.svn),但确保找到同级目录(project2 和 project3)。

退出 状态


发现 如果所有文件都处理成功,则以状态 0 退出,如果错误则大于 0
发生。 这是故意的一个很宽泛的描述,但如果返回值是非
零,你不应该依赖结果的正确性 发现.

当出现一些错误时, 发现 可能会立即停止,未完成所有操作
指定的。 例如,一些起点可能没有经过审查或一些待定
程序调用 执行 ... {} + or -执行目录 ... {} + 可能没有执行。

使用使用 onworks.net 服务在线查找


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad