ls로 인쇄되는 파일 수를 어떻게 제한합니까? 수있는 엄청난 양의 파일이있는 디렉토리와 실행이

ls명령 에서 나열된 파일의 수량을 제한하는 방법이 있습니까?

나는 본 적이:

ls | head -4

그러나 실행 head하거나 tail실행하려면 ls상당한 시간이 걸릴 수있는 엄청난 양의 파일이있는 디렉토리와 실행이 끝날 때까지 기다려야합니다 .

ls해당 head명령 을 사용하지 않고 제한 하는 명령 을 실행하고 싶습니다 .



답변

당신이 시도 했습니까

ls -U | head -4

이것은 정렬을 건너 뛰어야 ls하므로 아마도 너무 오래 걸립니다.

https://stackoverflow.com/questions/40193/quick-ls-command


답변

사용중인 버전에 GNU lsls 와 같은 파일을 정렬하지 않는 방법이 있으면이를 사용하십시오. 옵션이 없으면 먼저 모든 파일을 읽은 다음 이름을 정렬 한 다음 인쇄를 시작합니다.-Uls

또 다른 가능성은 find이름을 찾을 때 인쇄 하는 run 입니다.

find . -name . -o -prune | head

( line 에서 head작업 하므로 파일 이름에 줄 바꿈 문자가 포함되지 않는다고 가정 함).


답변

아마도 당신은 이외의 도구가 필요 ls합니까?

예를 들어, Randal Schwartz에는 필요에 맞는 것을 구축하는 데 도움이 되는 큰 디렉토리에서 사용하는 방법 perl 대한 블로그 항목 이 있습니다.

랜달을 게시 블로그에 둘 것을 설명 lsfind그동안 시도가 어떤을 인쇄하기 전에 모든 디렉토리 항목을 읽어 올 perl그가 제안 솔루션을하지 않습니다.


답변

성능이 문제가 아닌 경우 (이 파일의 복제본으로 닫힌 질문에서와 같이) 첫 번째 n 파일을 (의 출력의 첫 번째 n 줄과 반대로 ls) 파일 이름별로 정렬 된 숨김 파일 zsh을 사용하면 다음을 사용할 수 있습니다.

ls -ld -- *([1,4])

처음 4 개 파일을 나열합니다. zsh정렬하지 말라고해도 디렉토리의 전체 내용을 읽습니다 *(oN[1,4])( 그 목록 ls 정렬합니다).


답변

어쩌면 이하 사용자의 요구에 더 적합?

 ls /usr/bin | less

저에게는 클래식 HDD가 장착 된 5 년 된 랩톱에서 즉시 작동하지만 헤드 속도도 동일합니다.

less조기 종료 할 수 있습니다 q.

1s 지연의 원인에 대한 귀하의 가정이 잘못되었지만 아마도 유닉스 풍미 또는 쉘, 덜 또는 헤드 명령에 달려 있다고 생각합니다.

Linux에서 GNU-ls를 사용하면

 ls -R /usr | less

전체 출력이 실행 중이고 실행 중일 때 즉시 출력을 시작합니다. 따라서 적은 수의 시작 전에 확실히 완료되지 않습니다. 출력에 따라 일정한 지연 시간이 1 초 이상인지 확인할 수 있습니다.

1 초 지연에 다른 이유가 있다고 생각합니다 .HDD가 잠 들어 깨어날 필요가 있습니까?

아주 적은 파일에 대해서도 지연이 있습니까?


답변

ls -lrth | tail

ls -lrth | tail -n 10

ls -lrth | grep *.gz | tail

답변

$ cut -f 1,n filename

첫 번째 n파일 을 가져 오는 작업을 수행 합니다.
n추출하려는 파일 수입니다. 완전한 코드는 다음과 같습니다.

$ ls|cut -f 1,n file