ls 목록을 이름으로 정렬 할 수 있습니까 ?
ls 목록을 이름으로 정렬 할 수 있습니까 ?
답변:
My ls는 기본적으로 이름별로 정렬됩니다. 당신은 무엇을보고 있습니까?
man ls 상태 :
List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.:
ls-c1지정된 경우 정렬하지 않습니다 : 그렇게 할 수있는 방법이 있습니까? ( --sort=name작동하지 않는 것 같습니다)
ls -la, 내가 봅니다 : .bashrc - can - .config - Downloads - .local - tmp, 정렬 이름은 다음과 같습니다..bashrc - .config - .local - Downloads - can - tmp
간단한 것을 위해 ls 를 sort 와 결합 할 수 있습니다 . 파일 이름 목록 :
ls -1 | 종류
역순으로 정렬하려면 :
ls -1 | 정렬 -r
ls | sort -n 1.1.1; 1.1.2; 1.1.3; 2.10.1; 2.10.15; 2.10.2; 2.10.20; 2.10.21; 2.1.1; 2.1.10; 2.1.15; 2.1.2; 2.1.3; 2.1.4; 10.1.1; 10.1.2; 10.1.3; 11.0.1; 11.0.2; 11.0.20; 11.0.21; 11.0.22; 2.10.2 이전에 2.10.15를 볼 수 있습니다 .
ls -1r.
lsfrom coreutils은 기본적으로 로케일 인식 정렬 을 수행 하므로 경우에 따라 놀라운 결과를 생성 할 수 있습니다 (예 : 및 에서 %foo정렬 ). ASCIIbetical 정렬을 원하면 다음을 사용하십시오.barquuxLANG=en_US
LANG=C ls
LANGilfnuence 정렬 동작,이 게시물은 나를 많이 도와줍니다!
?이 터미널 인 경우 모든 비 ASCII 문자에 대한 출력입니다 (ls의 잘못된 기능은 터미널로 출력되는지 확인하고 배관 할 때 작동합니다). cat to cat으로이 문제를 "수정"하고 C.UTF-8로케일을 사용하거나 (시스템에서 지원하는 경우) -b플래그를 사용할 수 있습니다 . 더 나은, 전혀 사용하지 말고 ls더 나은 사용`
ls대시 앞의 하이픈을 정렬합니다.
* nix 도구의 장점은 다음과 같이 결합 할 수 있다는 것입니다.
ls -l | sort -k9,9
의 출력 ls -l은 다음과 같습니다.
-rw-rw-r-- 1 luckydonald luckydonald 532 Feb 21 2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt
따라서 9,9열을 열 9까지 정렬 9하여 파일 이름이됩니다. 중지 할 위치를 제공해야합니다.이 경우 동일한 열입니다. 열은로 시작합니다 1.
또한 대 / 소문자를 무시 --ignore-case하려면 sort 명령에 추가하십시오 .
-k9,9뜻이야?
9하면 동일한 열까지 열을 정렬하는 것을 의미합니다 9. 정상적인 ls출력은 다음과 같습니다 : drwx------ 8 999 user 4.0K Feb 5 2017 file.txt, 따라서 9 열은 파일 이름입니다. 대소 문자를 무시하려면 --ignore-caseon sort를 사용하십시오 .
주의 사항 : "a"는 "Z"뒤에옵니다.
$ touch A.txt aa.txt Z.txt
$ ls
A.txt Z.txt aa.txt
normal여기 에서 해결책 을 시험해 볼 것 입니다.
man 페이지에서 (bash ls 용) :
-cftuSUX 또는 --sort가 없으면 항목을 알파벳순으로 정렬합니다.
which lsbash에 ls가 내장되어 있어도 성공할 것입니다. 오히려 builtin lsbash 에서 수행 하면 오류가 발생합니다.
which항상 경로를 반환합니다. type ls쉘이 생각하는 ls것 (내장, 기능, 실행 가능) 을 판별하는 데 사용하십시오 .
In Debian Jessie, this works nice:
ls -lah --group-directories-first
# l=use a long listing format
# a=do not ignore entries starting with .
# h=human readable
# --group-directories-first=(obvious)
# Note: add -r for reverse alpha
# You might consider using lh by appending to ~/.bashrc as the alias:
~$ echo "alias lh='ls -lah --group-directories-first'" >>~/.bashrc
# -- restart your terminal before using lh command --