Czy za pomocą ls
polecenia można wyświetlać tylko pliki utworzone po określonej dacie, godzinie ...?
Pytam o to, ponieważ mam katalog z tysiącem plików.
Chcę więc zobaczyć wszystkie pliki, które zostały utworzone od wczoraj.
Używam, ls -ltr
ale muszę czekać, aby zobaczyć wszystkie pliki ...
Czy istnieje odpowiednik DIRECTORY/SINCE=date
OpenVMS?
ls
wyświetla listę plików, ale niewiele oferuje wybór plików do wyświetlenia lub formatu wyjściowego. Używaj globowania (symbole wieloznaczne powłoki) lubfind
gdy chcesz wybierać pliki według nazwy lub metadanych (np. Data).zsh
:ls -1 -- *(.m-1)
Odpowiedzi:
Możesz użyć tego
find
polecenia, aby znaleźć wszystkie pliki, które zostały zmodyfikowane po określonej liczbie dni.Na przykład, aby znaleźć wszystkie pliki w bieżącym katalogu, które zostały zmodyfikowane od wczoraj (24 godziny temu), użyj:
Pamiętaj, że aby znaleźć pliki zmodyfikowane przed 24 godzinami, musisz użyć
-mtime +1
zamiast-mtime -1
.źródło
ls
tutaj, Luc.-mmin 5
wyświetla listę plików zmodyfikowanych w ciągu ostatnich 5 minut.-newermt "2011-02-27 13:42"
wyświetla listę plików zmodyfikowanych od określonej daty. Możesz użyć-exec ls --color -ld {} +
zamiast,-ls
aby uzyskać zwykły kolorowy wyświetlacz (jeśli lubisz kolorowe wyjście ls).find . -mmin -5
Spowoduje to znalezienie wszystkich plików zmodyfikowanych po określonej dacie.
źródło
źródło
date
mówiJun 03
, alels
mówiJun 3
, więc to nie działa. (2) Tydzień temu, data była 27 maja.ls -l | grep "May 27"
Znajdzie pliki zmodyfikowane tego dnia, ale także pliki zmodyfikowane 27 maja każdego innego roku - i pliki z „27 maja” w nazwie. (A jeśli uważasz, że jest to całkowicie fałszywe obawy, spojrzeć w górę „10 grudnia” ). (3), a jeśli udało się dostaćdate
do powiedzeniaJun 2
, grepping za które znaleźćJun 20
poprzezJun 29
, ale nieJun 2
(z dwoma spacjami). … (Ciąg dalszy)ls -ltr
do pobrania ostatnio zmodyfikowanych plików na końcu listy. Jeśli szukasz daty, nie musisz tego robić (z wyjątkiem plików 27 maja 2015 r. Na końcu listy, po plikach 27 maja 2014 r., 27 maja 2013 r. Itd.). (5) W awkprint $2, $3
jest równoważneprint $2" "$3
i jest o wiele łatwiejsze do odczytania - szczególnie gdy istnieją trzy inne poziomy cytatów.ls -ltr | grep "$(date | awk '{print $2,$3}')"
Mam nadzieję, że to zadziała:
Tutaj:
to powyższe polecenie drukuje wszystkie nazwy plików, które są tworzone od 1 maja do 31 maja
jeśli chcesz wydrukować datę również na konsoli, spróbuj tego
Jeśli chcesz podać ścieżkę do katalogu, możesz to wypróbować
źródło
ls
danych wyjściowych nie jest dobrym pomysłem . I nie wszyscy mówią po angielsku :-)