명령에 나열되는 파일 수를 제한하는 방법이 있습니까 ls
?
나는 본 적이 있다:
ls | head -4
그러나 가져오거나 실행하려면 head
실행 이 완료될 tail
때까지 기다려야 하며 ls
디렉터리에 파일 수가 많으면 시간이 꽤 걸릴 수 있습니다.
ls
이 명령을 사용하지 않고 제한 명령을 실행하고 싶습니다 head
.
답변1
시도해 봤어?
ls -U | head -4
이렇게 하면 정렬을 건너뛰어야 하므로 시간이 ls
오래 걸릴 수 있습니다.
답변2
귀하의 버전에 ls
파일을 정렬하지 않는 방법이 있는 경우(예:-U
GNU ls의 경우, 그걸 써. 옵션이 없으면 ls
모든 파일을 먼저 읽은 다음 이름을 정렬한 다음 인쇄가 시작됩니다.
또 다른 가능성은 를 실행하는 것입니다 find
. 이는 이름이 발견되면 인쇄합니다.
find . -name . -o -prune | head
head
( 현재 진행중인 작업 으로 인해 참고해주세요.철사, 파일 이름에 개행 문자가 포함되어 있지 않다고 가정).
답변3
아마도 그것 외에 다른 것이 필요할까요 ls
?
예를 들어 Randal Schwartz는 다음과 같은 기사를 썼습니다.perl
큰 디렉토리에 사용여기에는 귀하의 요구 사항을 충족하는 것을 구축하는 데 대한 몇 가지 팁이 포함될 수 있습니다.
Randal은 블로그 게시물에서 둘 다 인쇄하기 전에 모든 디렉토리 항목을 읽으려고 ls
시도 하지만 그가 제안한 솔루션은 그렇지 않다고 설명합니다.find
perl
답변4
관련 없는 참고 사항("리눅스 트리 제한 파일 수 제한"을 검색할 때 이 질문이 나타나기 때문에)을 사용할 수 있습니다 tree --filelimit=10
(10개 이하의 파일만 있는 디렉터리 삭제). 아래와 같이 멋지게 출력됩니다.
tree --filelimit=10
디렉토리 구조와 내용을 나열합니다. 대규모 데이터 세트를 탐색할 때(처음 구조/계층 구조를 이해하는 데 관심이 있는 경우) 매우 유용합니다.
.
├── gps
│ ├── gps.csv
│ └── ins.csv
├── mono_rear [2217 entries exceeds filelimit, not opening dir]
├── mono_rear.timestamps
├── stereo
│ └── centre [3164 entries exceeds filelimit, not opening dir]
└── stereo.timestamps