2012-05-03 3 views
-1

Я играл с командой find и чем-то еще, о чем я могу думать, но ничего не получится.Заменить все файлы определенного типа во всех каталогах и подкаталогах?

Я бы хотел, чтобы мой скрипт bash мог найти весь тип файла в заданном каталоге и во всех его подкаталогах и заменить файл на другой.

EX: позволяет сказать /home/test1/randomfolder/index.html

/home/test1/randomfolder/stuff.html

/home/different/stuff/index.html

/home/different/stuff/another.html

Каждый из этих .html-файлов должен быть найден, когда предоставляется программа/home/в качестве каталога для поиска, а затем заменяется повторением другого файла в них ,

Возможно ли это в bash?

+0

Рассматривали ли вы с помощью 'unionfs'? Это * разработан * для наложения таких деревьев каталогов. – FatalError

+0

Какой еще файл? Будет ли команда работать как 'my_file_replace/home/index.html/tmp/new_index.html' и скопировать' new_index.html' поверх найденных файлов? Это определенное имя файла вместо определенного типа файла? –

+0

Конечно, вы можете это сделать, вы не очень старались ... что вы на самом деле пробовали? – KurzedMetal

ответ

2

Это должно более или менее, чтобы вы идете в правильном направлении:

for file in `find . -type f -name \*.html`; do echo "new content" > $file; done 
+0

Это буквально точно то, что ive искали для .... 2 дня. Спасибо, сэр. – Poisoned

+0

Ahhh, еще один вопрос, у меня есть пользователь, вводящий расширение файла theyre, заменяющего файл .html. Есть ли способ изменить расширение файлов, если они уже не совпадают. У меня есть $ extn = ". Html" и $ deextn = независимо от того, что они вводят (будучи extn файла theyre, заменяющего html-файл) , поэтому его поиск .html-файлов, но заменяющих их файлами .php, есть способ заменить контент и расширение на .php? Спасибо – Poisoned

Смежные вопросы