Próbuję zrobić skrypt zapasowy, ponieważ pliki dziennika stają się coraz większe. Mam kopiowanie bieżącego pliku (na przykład secure
plik do /var/log/
) i usuwanie zawartości z tego pliku. Ale istnieją pewne pliki o nazwie typu: secure.1
, secure.2
a to wszystko i jak je policzyć, a jeśli liczba jest większa następnie 2
je wszystkie archiwizacji. Nie mogę znaleźć metody znalezienia tych plików ani ich policzenia. Pierwszą myślą, która przyszła mi do głowy, było:
find /var/log/ -name *.1 | wc -l
i to zawsze będzie drukowane, 1
ponieważ istnieje jeden plik secure.1
. Jak mogę liczyć jak w pętli, w której mogę określić zakres liczb podobnych {1..5}
lub podobnych. Czy istnieje sposób na rozdzielenie tych plików i utworzenie ich jako kopii zapasowej lub usunięcia lub co innego ... lub przede wszystkim, jak znaleźć wszystkie liczby, które kończą się cyframi.
find /var/log/ -name '*.1' ...
logrotate
swój cel.Odpowiedzi:
Z prostym
-name
:lub dla dowolnej cyfry:
lub jeśli po cyfrze są możliwe inne znaki:
źródło
Aby znaleźć nazwy plików, które kończą się liczbami, należy
.
wybrać zakres od [1 do 5].źródło
Dlaczego nie tylko ...
O
find
ile wiem, nie potrzebujesz - powłoka używa tych samych globów, w których działa-name
. A jeśli wszystkie pliki znajdują się w jednym katalogu ... Oczywiście, jeśli istnieją podkatalogi, którymi również jesteś zainteresowany,find
może to być korzystne - chodzenie po drzewach w powłoce może być bólem głowy.źródło