(...) czemu mi to nie chcę zadziałać.
Nie działa, bo używasz złych parametrów.
find ~/aa/ -maxdepth 1 -type f ! -empty -name "b*" -mtime -4 >> ~/bb/linia.txt
Po kolei:
- przeszukaj katalog aa, znajdujący się w katalogu domowym użytkownika
- poszukiwania ogranicz tylko do jednego poziomu, czyli nie przeszukuj np. katalogu ~/aa/katalog_podrzedny/
- wyszukiwanie ogranicz tylko do plików
- wyszukanie ogranicz do niepustych plików. Wykrzyknik to negacja
- wyszukiwanie ogranicz do plików, których nazwa rozpoczyna się od znaku b (pominięte zostaną pliki z nazwą rozpoczynającą się od znaku B)
- wyszukiwanie ogranicz do plików modyfikowanych nie dawniej niż 4 dni temu (plus oznacza dawniej niż 4 dni temu)
- wyszukiwanie przekieruj do pliku ~/bb/linia.txt. Jeśli plik istnieje, to zostanie do niego dopisany output polecenia find, w przeciwnym razie plik zostanie stworzony (zakładając, że istnieje katalog bb)
Czy do tego służy polecenie grep czy find (...)
Najprostsze jest to, co podałem. grep-em też się da to zrobić z użyciem potoków, ale to bardziej skomplikowane. Lepiej wykorzystać narzędzie dedykowane, czyli find. W ogólności polecenie grep służy do wyszukiwania wzorców w plikach tekstowych.