Shell Geek Преименувайте няколко файла наведнъж
Да приемем, че имате директория със стотици файлове с неправилни имена на файлове и искате да замените всяко съдържащо го име на файл тест с ръгане. (това е измислен пример). Лесно можем да направим това с командата "за" в bash, комбинирана с малко от bash доброта. Днес ще научим как да заменим текста в променлива в for loop.
Командата „за“ работи по следния начин:
за var in; do $ var;
Можете да замените с всеки шаблон за съвпадение на файлове, като * или * .txt, и можете да го замените с всяка Linux команда. Командата ще се изпълнява последователно на всеки от файловете, съвпадащи с шаблона за съвпадение на файлове.
Тук управлението на променливата bash го прави още по-интересен. Вместо да правим нещо като "mv $ var", можем да заменим текста в името на файла с този синтаксис:
$ Var / originaltext / replacetext
Така че сега, ако изпълним тази команда в нашата директория:
за f in *, направете mv $ f $ f / test / prod
За всеки файл, съвпадащ с *, bash ще изпълни команда, подобна на тази:
mv test.config prod.config
Открих, че познанията за черупката са безценни при администрирането на сървъри или само за управление на колекцията ви от файлове, и ми спести часове от това, което иначе би било ръчна работа.
И да, осъзнавам, че има редица инструменти, които могат да постигнат преименуване на множество файлове.