3

この2つのコマンドの違いは何ですか..

find . –name *.txt

find . –name "*.txt"

システムで実行しましたが、違いが見つかりません。サインは何をし" "ますか?

4

1 に答える 1

8

glob パターンの前後に引用符を使用しない場合、つまり次のように言う場合:

find . -name *.txt

次に、シェルは現在のディレクトリ*.txt内の一致するファイルに展開してから、それらを引数としてに渡します。パターンに一致するファイルが見つからない場合、動作は引用されたバリアントに似ています。find

引用符を使用する場合、つまり次のように言う場合:

find . -name "*.txt"

シェルは*.txt引数として に渡しますfind

グロブを指定するときは常に引用符を使用します(特に への引数として使用する場合find)。


例が役立つ場合があります。

$ touch {1..5}.txt                # Create a few .txt files
$ ls
1.txt  2.txt  3.txt  4.txt  5.txt
$ find . -name *.txt              # find *.txt files
find: paths must precede expression: 2.txt
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
$ find . -name "*.txt"            # find "*.txt" files
./2.txt
./4.txt
./3.txt
./5.txt
./1.txt
于 2013-10-26T08:21:30.433 に答える