Wiem, że ls -twyświetli listę wszystkich plików według czasu modyfikacji. Ale jak mogę ograniczyć te wyniki tylko do ostatnich n plików?
tharlmam wszystko, czego potrzebuję.
Wiem, że ls -twyświetli listę wszystkich plików według czasu modyfikacji. Ale jak mogę ograniczyć te wyniki tylko do ostatnich n plików?
tharlmam 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
lsw wielu kolumnach, ale dane wyjściowe lssą 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 -6pokaże 5 plików, ponieważ lswypisuje 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 -tsortuje 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 headpierwszych 5 wierszy wyniku:
ls -t | head -n 5
W przypadku 5 najnowszych plików uporządkowanych od najstarszego do najnowszego użyj -rprzełącznika, aby odwrócić lskolejność sortowania i użyj, tailaby pobrać ostatnie 5 wierszy wyniku:
ls -tr | tail -n 5
ls -tlista plików według czasu utworzenia, a nie czasu ostatniej modyfikacji. Użyj, ls -ltcjeś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 -lrtmoże komuś pomóc.