замените несколько файлов в разных подпапках файлом новой версии в unix

0

Я могу найти несколько примеров того, как заменить строку в нескольких файлах с помощью grep или sed, но я хочу заменить старую версию файла на новую версию.

Например, у меня есть файл класса new1.class.php в 10 разных подпапках, и я хочу заменить все эти new1.class.php новым new1.class.php,

Как мне это сделать?

  • 0
    Я думаю, что вы хотите sed -i (для редактирования на месте)?
  • 0
    на самом деле, я просто хочу заменить весь файл новым файлом вместо замены строки в файле.
Показать ещё 2 комментария
Теги:
grep
sed

1 ответ

1
Лучший ответ

Вы можете использовать find и просто копировать новый файл поверх вас...

find . -name new1.class.php -exec cp /some/place/new1.class.php {} \;

(Предполагая, что вы запускаете это как root) cp сохранит право собственности и разрешение целевого файла (тот, который будет перезаписан). Если вы хотите сохранить разрешения исходного файла, вы можете использовать cp -p

  • 0
    это заменит их всех одним
  • 0
    спасибо, вот в основном я искал. Как насчет восстановления того же пользователя и разрешения, в то время как он первоначально имел до замены?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню