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 -al
C 정렬 순서(코드 포인트나 로케일에 관계없이 특정 바이트별로 정렬)로 정렬되는 를 실행해 보세요.