Я знаю, как найти и заменить определенную строку в файлах, но мне интересно, как мне найти и заменить целые файлы? например Я бы хотел найти все info.php
файлы, которые были изменены в определенное время, и заменить их другим файлом.
Что-то вроде:
find -f /home/ -name php.info -exec cp -f /var/somefile.php {}
или?
Я не уверен, как добавить, поэтому он будет искать только файлы, которые были изменены, например, 20 января 2014 г.
находка имеет -mtime
фильтр, который вы можете использовать для этого.
Для более сложного поиска и замены вы также можете использовать цикл оболочки.
find WHATEVER | while read f ; do
## add your own test here, like …
# fgrep -qs "do not delete" "$f" && continue
cp -f /what/ever "$f"
done
Для поставки find
с точными датами, используйте что-нибудь вроде -newermt 2014-01-20 \! -newermt 2014-01-21
.