パラメータ-name
と一致する値をfind
二重引用符で囲む必要があるのはなぜですか?
# find / -type f -name *.out |wc -l 1>mv.out
0403-027 The parameter list is too long.
# cat mv.out
0
# find / -type f -name "*.out" |wc -l 1>mv.out
# cat mv.out
146302
ベストアンサー1
二重引用符がない場合、シェルは展開されます。これは、現在のディレクトリで一致するすべてのファイル名(主にドットで終わるがドットで始まらないすべてのファイル)*.out
に置き換えられることを意味します。あなたの場合、引数として渡された2つ以上の一致するファイルがあるようです。どうすればいいのかわからず、引数リストが長すぎると文句を言います。*.out
.out
find
find
パターンを引用するとシェルはそのまま残り、引用符を削除するとfind
変更されていないパラメータが表示されます*.out
。これはおそらく欲しいものです。