2014-04-14 15 views

Odpowiedz

46

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.

+0

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? –

+1

@ButtleButkus Dodano przykład '-printf'. – BroSlow

+0

Dzięki, to zadziałało całkiem nieźle! –

Powiązane problemy