「検索」が時々私のファイルを見つけるのに時々[重複]されないのはなぜですか?

「検索」が時々私のファイルを見つけるのに時々[重複]されないのはなぜですか?

これは私のディレクトリツリーです(すべてのディレクトリとファイルは表示されず、必要なディレクトリとファイルのみが表示されます)。

a_root_dir/ (directory)
a_root_dir/dynamo/local/run.sh
a_root_dir/dynamo/local/run_local.sh

今私がするとき

> cd a_root_dir
> find . -name *.sh
./dynamo/local/run.sh
########### IT DOESN'T SHOW run_local.sh !!!!
> cd dynamo
> pwd
...../a_root_dir/dynamo
> find . -name *.sh
./local/run.sh
./local/run_local.sh
######## NOW IT FOUND IT

どうすればこれが起こりますか?

ファイル、ディレクトリ、スクリプトは「通常」です。シンボリックリンクなし。非常にありがとう

ベストアンサー1

find問題は、アスタリスクが引数として渡される前にシェルによって解釈されることです。

script.shつまり、findを実行した現在の作業ディレクトリに同様のファイルがある場合、コマンドは次のようになりますlike

#command you type:
find . -name *.sh
#command the shell creates:
find . -name script.sh

したがって、あなたの場合、これはシェルで解釈された最初の一致であり、コマンドは文字通り次のようになります*.sha_root_dir

find . -name run.sh

あなたがしなければならないことは、find実行する前にシェルがアスタリスクを拡張しないように二重引用符を使用することです。

find . -name '*.sh'

おすすめ記事