`cat ~/foo* > ~/results/output.txt` は `~/foo*` の順序を維持しますか?

`cat ~/foo* > ~/results/output.txt` は `~/foo*` の順序を維持しますか?

何百ものフォームを含むファイルがあります~/foo.x.y。これらのファイルは

~/foo.0001.0010
~/foo.0011.0020
~/foo.0021.0030
...
~/foo.4371.4378

~/results/output.txtこれらすべてのファイルを順序を維持する1つの大きなファイルに結合したいと思います。私はかなり確信しています

$ cat ~/foo* > ~/results/output.txt

これを完了しましたが、このコマンドが私のファイルの順序を尊重しているかどうかはわかりませんfoo。このコマンドは有効ですか?そうでない場合は、どのように作業を完了できますか?

答え1

cat引数の順序は次のとおりです。拡張すると~/foo*(ダブルタブまたは一部のシェルではecho ~/foo*)順序が表示されます。

ワイルドカードの順序は*アルファベット順です。

したがって、ワイルドカードの問題は次のとおりです。 https://superuser.com/questions/192280/does-bashs-match-files-in-alphanumeric-order

答え2

からman bash

After word splitting, unless the -f option has been set, bash scans
each word for the characters *, ?, and [.  If one of these characters
appears, then the word is regarded as a pattern, and replaced with an
*alphabetically* sorted list of filenames matching the pattern

メモalphabetically。あなたの場合は次のとおりです。

$ cat foo.0001.0010 foo.0011.0020 foo.0021.0030

*拡張するには、入力してから押す前に-を使用できます。Cx **Enter

関連情報