디렉토리에서 마지막으로 수정 된 5 개의 파일을 어떻게 나열합니까 (ls)?


138

ls -t수정 된 시간으로 모든 파일을 나열한다는 것을 알고 있습니다. 그러나이 결과를 마지막 n 파일 로만 제한하려면 어떻게해야합니까?


10
순서 ls -lrt를 바꾸면 누군가에게 도움이 될 수 있습니다.
PJ Brunet

@PJBrunet을 좋아하십시오. 나는 tharl내가 필요한 모든 것을 갖는 경향이 있기 때문에 항상 ls'ing의 습관을 형성했습니다 .
Adam Grant

답변:


246

머리 나 꼬리를 사용해보십시오. 가장 최근에 수정 된 5 개의 파일을 원하는 경우 :

ls -1t | head -5

-1 (즉 1)은 한 줄에 하나의 파일을 나타내고 헤드는 처음 5 개의 항목을 가져옵니다.

당신이 마지막 5 시도를 원한다면

ls -1t | tail -5

2
내가 실수하지 않으면, 쉘은 ls여러 열의 출력을 나타내지 만, 출력은 한 번 ls에 1 개의 파일 / 디렉토리를 가진 다음 명령으로 파이프됩니다.
Alex

그것은 사실 인 것 같습니다. 좋은 단순화.
Paul Rubel

3
이것은 상단의 총계를 무시합니다.ls -1t | head -n 6 | tail -n 5
Ryan

1
나는 총계를 보지 못하지만 확실히 작동하는 것이 있다면.
Paul Rubel

18

허용 된 답변에는 파일 이름 만 나열되지만 상위 5 개의 파일을 얻으려면 다음을 사용할 수도 있습니다.

ls -lht | head -6

어디:

-l 목록 형식으로 출력

-h 출력물을 사람이 읽을 수있게합니다 (예 : 파일 크기는 kb, mb 등으로 나타남)

-t 가장 최근에 수정 된 파일을 먼저 배치하여 출력을 정렬합니다

head -6 5 개의 파일을 표시하므로 ls첫 번째 출력 행에 블록 크기를 인쇄 .

나는 이것이 조금 더 우아하고 아마도 더 유용한 접근법이라고 생각합니다.

출력 예 :

total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv


12

사용 tail명령 :

ls -t | tail -n 5

이것은 가장 오래된 5를 제공합니다. 5를 최신으로 받으려면 sort ( ls -tr) 를 반대로 바꾸거나을 (를 ) 사용 head하지 tail않아야합니다.
헤드 뱅크

2

기본적으로 ls -t 출력을 최신에서 가장 오래된 것으로 정렬하므로 사용할 명령 조합은 출력을 정렬 할 방향에 따라 다릅니다.

최신 파일부터 가장 오래된 파일까지 최신 5 개 파일의 head경우 처음 5 줄의 출력을 사용합니다.

ls -t | head -n 5

가장 오래된 것부터 가장 오래된 것까지 순서대로 정렬 된 최신 5 개 파일의 경우 -r스위치를 사용하여 ls정렬 순서 를 반대로 tail하고 마지막 5 줄의 출력을 사용합니다.

ls -tr | tail -n 5

1

ls -t마지막 수정 시간이 아닌 작성 시간별로 파일을 나열합니다. ls -ltc마지막으로 수정 한 시간을 기준으로 파일을 마지막에서 처음으로 (위에서 아래로) 나열 하려면 사용하십시오 . 따라서 마지막 n을 나열하려면 다음을 수행하십시오.ls -ltc | head ${n}


1
어떤 플랫폼 / 버전을 참조하십니까? 당신은 링크를 제공 할 수 있습니까? 리눅스 맨 페이지를 보면 당신이 말하는 것과 반대가된다 : -t sort by modification time, newest first
Joma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.