`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이 모든 파일을 순서를 유지하는 하나의 큰 파일로 결합하고 싶습니다 . 나는 꽤 확신한다

$ 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

관련 정보