Перейменування файлів в linux, admins su

Спасибі, начебто зрозумів, мені цікаво чи можна перейменувати за допомогою команди find, наприклад є файли типу ****. Log і розкидані по різних директоріях. хотілося б їх перейменувати в ***. LOG і залишити в тих же папках.
find / -type f -name '* .log' (я пробував «-exec mv» не вийшло) | while read fname; do echo mv $ fname $; done
і нічого не виходить, я не можу зрозуміти де помилка.

З linux знайомлюся, я не адміністратор і не програміст, я людина військова доходить важко, повторюйте двічі =)

Це звичайно давно було, але я відповім.
У Линух можна передавати висновок однієї команди на обробку іншого, робиться це ось такою рисою - «|».
Відповідно ми шукаємо потрібні файли командою find і передаємо їх на перейменування команді rename -

find. -name «* .txt» -print | rename 's / .txt / .jpg / g'

Дана команда знайде все txt файли в поточному (від куди запускали) каталозі і вкладених в нього інших каталогах і поміняє їх на jpg
Для пошуку і заміни всюди-всюди потрібно вказати / замість точки. Це коренева директорія.

Велике спасибі! Тільки -print не спрацьовує. Він спрацьовує, але тільки без ренейма. Чому так?
І для чого вартий останній слеш в цьому виразі 's /?.*// g'.

Перевірив копіпастом, однострочнікі працює. між останніми Слеш згідно синтаксису перл регекспа вказується, на що міняти. Новомосковскется, як замінити вміст після знаку питання разом з ним на порожнечу. Можу допомогти подебагіть, скайп cucadmuh

Спасибі за допомогу! Дебажіть нічого.
Я пітоніст. Там трохи інша регулярка (вірніше прапори).
Але захотілося повчиться користуватися вбудованими скриптами. З огляду на бóльшего зручності і швидкості.
Ваше вираз працює відмінно. Просто воно не виводить дані (-print) - що і на що він змінило. Я спочатку не зрозумів нічого, тому що екран нічого не видав. Думав, що не спрацювало, але заліз в папку і там вже побачив замінене ім'я. Так що все працює, крім виведення stdout на екран.

Post navigation

Схожі статті