Начална » как да » Shell Geek Преименувайте няколко файла наведнъж

    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

    Открих, че познанията за черупката са безценни при администрирането на сървъри или само за управление на колекцията ви от файлове, и ми спести часове от това, което иначе би било ръчна работа.

    И да, осъзнавам, че има редица инструменти, които могат да постигнат преименуване на множество файлове.