2014-07-17 2 views
4

내 Bash 스크립트가 폴더의 항목을 영숫자 순서로 실행하고 있습니다. 하지만 그것은 내 Mac OS 폴더에있는 것과 같은 순서가 아닙니다. 그래서 지금 리눅스 정렬 순서가 궁금합니다. 그리고 그것을 바꿀 수 있습니까? 내 Bash 스크립트 만 변경할 수 있습니까? 영숫자 순서로 폴더의 모든 동영상을 실행하는 Bash 스크립트에서 동영상 플레이어를 실행하고 싶다면 스크립트에서 영숫자 순서를 지정해야합니까?Linux는 어떤 정렬 순서를 사용합니까?

+0

정렬 순서가 환경 변수'LC_ALL' 설정할 수 있습니다 로케일에 따라 달라집니다 : 내 시스템 (en_US.utf8)에

. –

+1

몇 가지 예를 보여주십시오. –

답변

6

많은 명령 (bash glob, ls, sort 포함)의 정렬 순서는 현재 로캘 설정을 기반으로합니다.

환경 변수 LC_COLLATE을 설정하여을 강제로 으로 설정할 수 있습니다. C으로 설정하면 바이트 값을 비교합니다.

sh$ touch eleve 
sh$ touch élève 
sh$ touch Eleve 
sh$ touch Élève 
sh$ touch äkta 
sh$ touch österreich 

sh$ ls 
äkta eleve Eleve élève Élève österreich pommes 

sh$ LC_COLLATE=fr_FR.utf8 ls 
äkta eleve Eleve élève Élève österreich pommes 

sh$ LC_COLLATE=sv_SE.utf8 ls 
eleve Eleve élève Élève pommes äkta österreich 

sh$ LC_COLLATE=C ls 
Eleve eleve pommes Élève äkta élève österreich 
+0

영구히 변경할 수 있습니까? LC_COLLATE의 위치는 어디입니까? – Paolo

+2

@Paolo, ~/.bash_profile (또는 사용하는 경우 ~/.profile)에 추가하십시오 :'export LC_COLLATE = C' (또는 무엇이든간에) –

관련 문제