kilka kwestii
- Chyba nie ograniczając go do plików, więc gdy znajdzie katalog pasujący będzie to lista wszystkich plików w nim.
- Nie można użyć
>
w -exec
bez czegoś takiego jak bash -c '... > ...'
. Choć >
nadpisze plik, tak czy inaczej, przekierujesz cały numer find
zamiast każdego -exec
.
+30
jest older
niż 30 dni, zostanie zmodyfikowany w ciągu ostatnich 30 dni.
-exec
Naprawdę nie jest potrzebna, możesz wymienić wszystko z różnymi opcjami -printf
, ale nie wiesz czego chcesz.
Coś poniżej powinny działać
find -type f -mtime -30 -exec ls -l {} \; > last30days.txt
Przykład z -printf
find -type f -mtime -30 -printf "%M %u %g %TR %TD %p\n" > last30days.txt
Który będzie lista plików w formacie "uprawnienia grupy właściciel data czas pliku". -printf
jest na ogół lepszym rozwiązaniem niż -exec
w przypadkach, w których nie trzeba wykonywać żadnych skomplikowanych czynności, ponieważ będzie działał szybciej z powodu braku konieczności wykonywania podpowłok dla każdego -exec
. W zależności od wersji find, możesz również użyć -ls
, który ma format podobny do powyższego.
Po prostu chcę utworzyć plik, który, miejmy nadzieję, mógłbym przejrzeć w vimie lub w Excelu i sprawdzić, czy któryś z ostatnio zmodyfikowanych plików jest nietypowy. Zwykle modyfikujemy tylko niektóre pliki. Jeśli są dodatkowe pliki, może nam to powiedzieć źródło złośliwego kodu. Skopiowałem wersję 'exec' skądś w Internecie. Czy możesz dodać przykład 'printf' i wyjaśnić, dlaczego jest lepszy? Przypuszczam, że ma więcej opcji formatowania, tak? –
@ButtleButkus Dodano przykład '-printf'. – BroSlow
Dzięki, to zadziałało całkiem nieźle! –