Ответ 1
Пара проблем
- Вы не ограничиваете его файлами, поэтому, когда он находит соответствующий каталог, он будет перечислять каждый файл внутри него.
- Вы не можете использовать
>
в-exec
без чего-то вродеbash -c '... > ...'
. Хотя>
будет перезаписывать файл, поэтому вы хотите перенаправить всеfind
в любом случае, а не каждый-exec
. -
+30
older
, чем 30 дней,-30
будет изменен за последние 30 дней. -
-exec
действительно не нужен, вы можете перечислить все с различными параметрами-printf
, но не знаете, чего хотите.
Что-то вроде ниже должно работать
find -type f -mtime -30 -exec ls -l {} \; > last30days.txt
Пример с -printf
find -type f -mtime -30 -printf "%M %u %g %TR %TD %p\n" > last30days.txt
Будет отображаться список файлов в формате "permissions owner group time date filename". -printf
обычно предпочтительнее -exec
в тех случаях, когда вам не нужно ничего осложнять, так как он будет работать быстрее в результате невозможности выполнения подсетей для каждого -exec
. В зависимости от версии find вы также можете использовать -ls
, который имеет аналогичный формат выше.