Bash 機能は再帰的に機能しません。

Bash 機能は再帰的に機能しません。

ディレクトリ構造:

one.pdf
./subdir/two.pdf
./anothersubdir/ three.pdf

私が入力したとき:

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

サブディレクトリを含むすべてのPDFを検索します。

バッシュ機能

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

bashrcでこの機能を使用するには、次のように入力します。

getext *.pdf

「one.pdf」のみ検索し、残りは検索しません。

質問:この機能はどうなりますか?最初のファイルをインポートして停止するstdinと比較して何が欠けていますか?

ご協力ありがとうございます。

答え1

"*.pdf"主張で述べたのと同じ理由でfind ~へあなたの機能、あなたがするとき呼ぶ機能:

getext "*.pdf"

それ以外の場合、シェルは*.pdf現在のディレクトリのファイル名を一致させようとし、それを拡張します。この場合one.pdf-今後あなたの関数に渡されました。

関連情報