find コマンドの引用符の違い

find コマンドの引用符の違い

入れ子になったディレクトリコマンドがある場合は、find . -name "*.py" -print現在のディレクトリにあるすべてのPythonスクリプトを取得します。ただし、find . -name *.py -print現在のディレクトリのPythonスクリプトのみが返されます。

これが予想される動作ですか?この違いの原因は何ですか?私はMac OS X 10.7を使用しています。

ベストアンサー1

これは同じコマンドではないかもしれません。echo前に置いて確認してください。

$ echo find . -name "*.py" -print
find . -name *.py -print

$ echo find . -name *.py -print
find . -name foobar.py barfoo.py -print

引用符がない場合、シェルは拡張され、*.py別のfind引数を取得して別の結果が生成されます。

*コマンドを文字通り読み取るには、常に引用符を使用する必要があります*。それ以外の場合、動作は不規則になります(*.pyシェルが拡張するファイルがない限り、コマンドは機能します)。

おすすめ記事