用于以下命令
find . -name "*.java"
结果是我的预期,在当前目录及其子目录下找到扩展名为.java的文件名,但我无法理解以下命令输出
find . -name *.java
没有双引号,我知道*在ksh中有特殊含义,但这个命令到底是做什么的?
答案 0 :(得分:1)
这取决于当前目录中有多少* .java文件:
0:shell将掩码传递给':int nxtcol=0;
for(int k=0;k<values.length;k++)
{
Row row1 = sheet1.createRow(k);
row1.createCell(nxtcol).setCellValue(values[k]);
}
wb.write(fileOut);
nxtcol++;
1:shell将文件名传递给&#39;发现&#39;:find . -name *.java
2+:shell将文件名传递给&#39;发现&#39;:find . -name 1.java
当然&#39;发现&#39;不知道在第一个文件名之后如何处理额外的文件名
答案 1 :(得分:0)
您希望将*.java
提供给find
,而不是在向find
发出命令之前将其替换为bash。您可以将*.java
放在双引号中,或通过转义特殊字符来完成此操作:
find . -name \*.java
你可以看到
发生了什么set -x
find . -name *.java
set -