AIX 版本 6.1 中的查找命令

Posted

技术标签:

【中文标题】AIX 版本 6.1 中的查找命令【英文标题】:find command in AIX Version 6.1 【发布时间】:2016-11-15 17:59:42 【问题描述】:

下面的命令

find . -name "*.java" 

结果如我所愿,在当前目录及其子目录下找到后缀为.java的文件,但是下面的命令输出看不懂

find . -name *.java

没有双引号,我知道 * 在 ksh 中有特殊的含义,但是这个命令到底是做什么的呢?

【问题讨论】:

【参考方案1】:

您想将*.java 提供给find,而不是在将命令提供给find 之前被bash 替换的东西。您可以通过将*.java 放在双引号中或转义特殊字符来做到这一点:

find . -name \*.java

你可以看到发生了什么

set -x
find . -name *.java
set -

【讨论】:

【参考方案2】:

这取决于您在当前目录中有多少个 *.java 文件:

0:shell 将掩码传递给'find':find . -name *.java

1:shell 将文件名传递给'find':find . -name 1.java

2+:shell 将文件名传递给“find”:find . -name 1.java 2.java 3.java ...

当然,'find' 不知道如何处理第一个文件名之后的额外文件名

【讨论】:

以上是关于AIX 版本 6.1 中的查找命令的主要内容,如果未能解决你的问题,请参考以下文章

在 find 命令中查找不支持 printf 的 AIX 系统上的前 N ​​个最旧文件

AIX版本降级

在多个目录中的文件中查找和替换包含引号的字符串 - unix aix

aix系统命令

AIX--操作系统安装(AIX 6.1)

AIX常规检查与排错