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
.
ls
from coreutils
은 기본적으로 로케일 인식 정렬 을 수행 하므로 경우에 따라 놀라운 결과를 생성 할 수 있습니다 (예 : 및 에서 %foo
정렬 ). ASCIIbetical 정렬을 원하면 다음을 사용하십시오.bar
quux
LANG=en_US
LANG=C ls
LANG
ilfnuence 정렬 동작,이 게시물은 나를 많이 도와줍니다!
?
이 터미널 인 경우 모든 비 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-case
on sort를 사용하십시오 .
주의 사항 : "a"는 "Z"뒤에옵니다.
$ touch A.txt aa.txt Z.txt
$ ls
A.txt Z.txt aa.txt
normal
여기 에서 해결책 을 시험해 볼 것 입니다.
man 페이지에서 (bash ls 용) :
-cftuSUX 또는 --sort가 없으면 항목을 알파벳순으로 정렬합니다.
which ls
bash에 ls가 내장되어 있어도 성공할 것입니다. 오히려 builtin ls
bash 에서 수행 하면 오류가 발생합니다.
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 --