Bash 函数不能递归工作

Bash 函数不能递归工作

目录结构:

一.pdf
./subdir/two.pdf
./anothersubdir/三.pdf

当我输入:

find ./ -type f -name "*.pdf"    

它检索所有 pdf,包括子目录。

bash 函数

function getext {find ./ -type f -name "$1"}

在 bashrc 中使用此函数,输入:

getext *.pdf

它只检索“one.pdf”,但不检索其余部分。

问题:这个函数会发生什么?与仅获取第一个文件并停止的标准输入相比,它缺少什么?

感谢您的帮助。

答案1

"*.pdf"出于与您在论点中引用的相同原因find 里面你的函数,当你称呼功能:

getext "*.pdf"

否则,shell 将尝试匹配*.pdf当前目录中的文件名,从而将其扩展 - 在本例中为one.pdf-被传递给你的函数。

相关内容