Wiem, że ls -t
wyświetli listę wszystkich plików według czasu modyfikacji. Ale jak mogę ograniczyć te wyniki tylko do ostatnich n plików?
tharl
mam wszystko, czego potrzebuję.
Wiem, że ls -t
wyświetli listę wszystkich plików według czasu modyfikacji. Ale jak mogę ograniczyć te wyniki tylko do ostatnich n plików?
tharl
mam wszystko, czego potrzebuję.
Odpowiedzi:
Spróbuj użyć głowy lub ogona. Jeśli chcesz 5 ostatnio zmodyfikowanych plików:
ls -1t | head -5
-1 (to jest jeden) oznacza jeden plik w wierszu, a głowa mówi, że weź pierwsze 5 wpisów.
Jeśli chcesz ostatnich 5 prób
ls -1t | tail -5
ls
w wielu kolumnach, ale dane wyjściowe ls
są przesyłane potokiem do następującego polecenia z 1 plikiem / katalogiem naraz
ls -1t | head -n 6 | tail -n 5
Zaakceptowana odpowiedź zawiera tylko nazwy plików, ale aby uzyskać 5 najlepszych plików, można również użyć:
ls -lht | head -6
gdzie:
-l
wyniki w formacie listy
-h
sprawia, że wynik jest czytelny dla człowieka (tj. rozmiary plików są wyświetlane w kb, mb itp.)
-t
sortuje dane wyjściowe, umieszczając najpierw ostatnio zmodyfikowany plik
head -6
pokaże 5 plików, ponieważ ls
wypisuje rozmiar bloku w pierwszym wierszu wyjścia.
Myślę, że jest to nieco bardziej eleganckie i prawdopodobnie bardziej przydatne podejście.
Przykładowe dane wyjściowe:
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
Domyślnie ls -t
sortuje dane wyjściowe od najnowszych do najstarszych, więc kombinacja używanych poleceń zależy od kierunku, w którym mają być uporządkowane dane wyjściowe.
W przypadku 5 najnowszych plików uporządkowanych od najnowszych do najstarszych, użyj head
pierwszych 5 wierszy wyniku:
ls -t | head -n 5
W przypadku 5 najnowszych plików uporządkowanych od najstarszego do najnowszego użyj -r
przełącznika, aby odwrócić ls
kolejność sortowania i użyj, tail
aby pobrać ostatnie 5 wierszy wyniku:
ls -tr | tail -n 5
ls -t
lista plików według czasu utworzenia, a nie czasu ostatniej modyfikacji. Użyj, ls -ltc
jeśli chcesz wyświetlić pliki według czasu ostatniej modyfikacji od ostatniej do pierwszej (od góry do dołu). Tak więc, aby wymienić ostatnie n:ls -ltc | head ${n}
ls -lrt
może komuś pomóc.