디렉토리 목록이 완전히 정렬되지 않았습니다.

디렉토리 목록이 완전히 정렬되지 않았습니다.

Debian Linux 시스템에 다음 디렉토리를 나열했습니다. 그러나 한 가지 이상한 점은 populate.sql 파일이 나머지 파일과 함께 정렬되지 않는 것 같다는 것입니다.

-rw-r--r-- 1 user1 user1 10004 Jul 28 13:16 populate2.sql
-rw-r--r-- 1 user1 user1 10244 Jul 28 13:16 populate3.sql
-rw-r--r-- 1 user1 user1 10359 Jul 28 13:16 populate4.sql
-rw-r--r-- 1 user1 user1 11618 Jul 28 13:16 populate5.sql
-rw-r--r-- 1 user1 user1 11654 Jul 28 13:17 populate6.sql
-rw-r--r-- 1 user1 user1 12198 Jul 30 16:20 populate7.sql
-rw-r--r-- 1 user1 user1 12286 Aug 10 00:10 populate8.sql
-rw-r--r-- 1 user1 user1 12331 Aug 19 08:48 populate9.sql
-rw-r--r-- 1 user1 user1 12401 Aug 20 14:58 populatea.sql
-rw-r--r-- 1 user1 user1 12460 Aug 22 01:09 populateb.sql
-rw-r--r-- 1 user1 user1 12503 Aug 22 17:13 populatec.sql
-rw-r--r-- 1 user1 user1 13341 Aug 23 23:23 populated.sql
-rw-r--r-- 1 user1 user1 13414 Aug 27 23:01 populatee.sql
-rw-r--r-- 1 user1 user1 16064 Aug 31 00:03 populatef.sql
-rw-r--r-- 1 user1 user1 17529 Sep 16 15:38 populateg.sql
-rw-r--r-- 1 user1 user1 19348 Sep 19 22:50 populateh.sql
-rw-r--r-- 1 user1 user1 21033 Sep 27 20:46 populatei.sql
-rw-r--r-- 1 user1 user1 21024 Sep 28 00:02 populatej.sql
-rw-r--r-- 1 user1 user1 22505 Sep 28 22:55 populatek.sql
-rw-r--r-- 1 user1 user1 23831 Oct  5 21:24 populatel.sql
-rw-r--r-- 1 user1 user1 23665 Nov  2 22:16 populatem.sql
-rw-r--r-- 1 user1 user1 23513 Nov  4 21:53 populaten.sql
-rw-r--r-- 1 user1 user1 27191 Nov 19 14:55 populateo.sql
-rw-r--r-- 1 user1 user1 30142 Nov 28 17:51 populatep.sql
-rw-r--r-- 1 user1 user1 30853 Dec 10 14:49 populateq.sql
-rw-r--r-- 1 user1 user1 33690 Dec 11 23:43 populater.sql
-rw-r--r-- 1 user1 user1  9945 Jul 28 13:16 populate.sql
-rw-r--r-- 1 user1 user1 38696 Jan 16 22:27 populates.sql
-rw-r--r-- 1 user1 user1 38696 Jan 16 22:27 populatet.sql

처음에는 숨겨진 문자라든가 때문일지도 모른다고 생각했는데, r과 s 사이에 숨겨진 문자가 나타나는 것은 생각이 나지 않습니다. 또한 vim populate.sql명령 프롬프트에 이것을 입력하면 올바른 파일이 열립니다. 이는 이상한 문자가 없다는 추가 증거입니다.

populate.sql올바르게 정렬되지 않는 이유에 대한 아이디어가 있습니까 ?

답변1

LC_COLLATE예를 들어 유니코드를 지원하는 데이터 정렬을 사용하면 en_US.UTF-8구두점을 무시하는 정렬 순서가 생성됩니다. 따라서 populate.sql순서는 populatesql이후 populatersql이지만 이전입니다 populatessql.

이 동작 변경을 보려면 LC_COLLATE=C ls -alC 정렬 순서(코드 포인트나 로케일에 관계없이 특정 바이트별로 정렬)로 정렬되는 를 실행해 보세요.

관련 정보