Назад | Перейти на главную страницу

Найти и заменить файлы в linux

Я знаю, как найти и заменить определенную строку в файлах, но мне интересно, как мне найти и заменить целые файлы? например Я бы хотел найти все 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.