터미널에서 파일 이름 길이를 무시하고 파일이 알파벳순으로 나열되는 이유는 무엇입니까?
어쩌면 파일 이름 길이를 "무시"한다고 말하면 안 되지만 터미널과 GUI에서 파일을 표시하는 데 차이가 있는 이유는 무엇입니까?
분명 사소한 질문이지만, 한동안 좀 궁금했어요.
터미널에서 옵션(다른 정렬 옵션이 지정되지 않음) ls
이 포함된 일반 명령은 -l
목록의 맨 위 줄에서 시작하여 아래로 이동하면서 알파벳 순서로 파일을 나열합니다. 다음을 사용하여 생성된 파일로 가득 찬 디렉터리가 있다고 가정해 보겠습니다.
$ touch file1{1..16}
ls
동일한 디렉토리에 다음이 나타납니다.
-rw-r--r--. 1 user user 0 May 24 11:14 file1
-rw-r--r--. 1 user user 0 May 24 11:14 file10
-rw-r--r--. 1 user user 0 May 24 11:14 file11
-rw-r--r--. 1 user user 0 May 24 11:14 file12
-rw-r--r--. 1 user user 0 May 24 11:14 file13
-rw-r--r--. 1 user user 0 May 24 11:14 file14
-rw-r--r--. 1 user user 0 May 24 11:14 file15
-rw-r--r--. 1 user user 0 May 24 11:14 file16
-rw-r--r--. 1 user user 0 May 24 11:14 file2
-rw-r--r--. 1 user user 0 May 24 11:14 file3
-rw-r--r--. 1 user user 0 May 24 11:14 file4
-rw-r--r--. 1 user user 0 May 24 11:14 file5
-rw-r--r--. 1 user user 0 May 24 11:14 file6
-rw-r--r--. 1 user user 0 May 24 11:14 file7
-rw-r--r--. 1 user user 0 May 24 11:14 file8
-rw-r--r--. 1 user user 0 May 24 11:14 file9
내 질문은 왜 "file10"이 터미널에서 "file1" 뒤에 오는가 하는 것입니다. GUI 환경에서 파일을 세부정보나 목록 보기에서 이름이나 유형별로 정렬하여 보면 동일한 파일이 "file1", "file2", "file3" 등으로 나열됩니다.
GUI의 파일 목록은 파일 이름 길이에 따라 알파벳순으로 우선순위가 지정되어 가장 작은 길이부터 가장 큰 길이까지 파일을 나열하는 것으로 나타납니다. 맞습니까? 이에 대한 기술적 이유가 더 있습니까? 명령 ls
이 파일을 정렬하는 방식대로 진행됩니까, 아니면 GUI를 사용하여 동일한 작업을 수행합니까?
답변1
기본 순서는 ls
알파벳순입니다. 이 경우 숫자는 더 이상 숫자가 아니라 문자입니다. so file1
는 so보다 이름이 짧지 file10
만 그 외에는 동일하므로 목록에서 앞에 나옵니다.
자연스러운 버전 순서를 원한다면 ls -l --sort=version
(또는 ls -lv
) 시도해 볼 수 있습니다.
-rw-r--r--+ 1 roaima 0 May 24 18:50 file0
-rw-r--r--+ 1 roaima 0 May 24 18:50 file1
-rw-r--r--+ 1 roaima 0 May 24 18:50 file2
...
-rw-r--r--+ 1 roaima 0 May 24 18:50 file9
-rw-r--r--+ 1 roaima 0 May 24 18:50 file10
-rw-r--r--+ 1 roaima 0 May 24 18:50 file11
-rw-r--r--+ 1 roaima 0 May 24 18:50 file12
-rw-r--r--+ 1 roaima 0 May 24 18:50 file13
다른 많은 정렬 옵션을 사용할 수 있습니다 ls
. man ls
자세한 내용은 참조하세요.