
.png で終わるファイル名を再帰的に検索しようとしています。私の find コマンドは *.js では正常に機能しますが、*.png では機能しません。
~ >find dev -name *.png
~ >find dev -name bluerightarrow.png
dev/sandbox/ScheduleEditorTS/ScheduleEditorTS/img/bluerightarrow.png
~ >find dev -name *.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3-vsdoc.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3.js
... etc
答え1
おそらく.png
現在のディレクトリにファイルがあり、それが*
シェルによって展開されます。
実際の手順を説明します。 というディレクトリを作成しtest
、その中に という別のディレクトリを作成しsub
、最後に に というファイルをmyfile.txt
作成しますsub
。次に にファイルcd
を作成しますtest
。これを行うためのコマンドは次のとおりです。
~ >mkdir -p test/sub
~ >touch test/sub/myfile.txt
~ >cd test
実行するfind
と期待どおりの結果が得られます。
~/test >find sub -name *.txt
sub/myfile.txt
cause.txt
次に、 inというファイルを作成しtest
、find
再度実行します。
~/test >touch cause.txt
~/test >find sub -name *.txt
今回はシェルが を展開するため何も見つからず*
、find
コマンドは次のようになります。
~/test >find sub -name cause.txt
cause.txt
にファイルがないのでsub
、結果はありません。
この問題を回避するには、アスタリスクをバックスラッシュでエスケープする必要があります。
~/test >find sub -name \*.txt
sub/myfile.txt