If-Koubou

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

Shell Geek: Преименувайте няколко файла наведнъж (Как да)

Да приемем, че имате директория със стотици файлове с грешни имена на файлове и искате да замените всяко име на файл, съдържащо тест с ръгане, (това е измислен пример). Ние можем лесно да направим това с командата "за" в бас, комбинирана с малко божество. Днес ще научим как да заменим текста в променлива в линия за.

Командата "за" работи по следния начин:

за var в; направи $ var; готов

Можете да го замените с който и да е шаблон за съвпадение на файлове, като * или * .txt и можете да го замените с всяка команда в Linux. Командата ще се изпълнява последователно на всеки от файловете, съвпадащ с шаблона за съвпадение на файла.

Това е мястото, където променливата обработка на баш го прави още по-интересно. Вместо просто да правим нещо като "mv $ var", можем да заменим текста в името на файла с помощта на този синтаксис:

$ Var / originaltext / replacetext

Така че сега, ако изпълним тази команда в нашата директория:

за f в *; направете mv $ f $ f / test / prod;

За всеки файл, съвпадащ с *, bash ще изпълни команда, подобна на тази:

mv test.config prod.config

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

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