ls
명령 에서 나열된 파일의 수량을 제한하는 방법이 있습니까?
나는 본 적이:
ls | head -4
그러나 실행 head
하거나 tail
실행하려면 ls
상당한 시간이 걸릴 수있는 엄청난 양의 파일이있는 디렉토리와 실행이 끝날 때까지 기다려야합니다 .
ls
해당 head
명령 을 사용하지 않고 제한 하는 명령 을 실행하고 싶습니다 .
답변
당신이 시도 했습니까
ls -U | head -4
이것은 정렬을 건너 뛰어야 ls
하므로 아마도 너무 오래 걸립니다.
https://stackoverflow.com/questions/40193/quick-ls-command
답변
사용중인 버전에 GNU lsls
와 같은 파일을 정렬하지 않는 방법이 있으면이를 사용하십시오. 옵션이 없으면 먼저 모든 파일을 읽은 다음 이름을 정렬 한 다음 인쇄를 시작합니다.-U
ls
또 다른 가능성은 find
이름을 찾을 때 인쇄 하는 run 입니다.
find . -name . -o -prune | head
( line 에서 head
작업 하므로 파일 이름에 줄 바꿈 문자가 포함되지 않는다고 가정 함).
답변
아마도 당신은 이외의 도구가 필요 ls
합니까?
예를 들어, Randal Schwartz에는 필요에 맞는 것을 구축하는 데 도움이 되는 큰 디렉토리에서 사용하는 방법 perl
에 대한 블로그 항목 이 있습니다.
랜달을 게시 블로그에 둘 것을 설명 ls
과 find
그동안 시도가 어떤을 인쇄하기 전에 모든 디렉토리 항목을 읽어 올 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