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

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

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

Видео: Shell Geek: Преименувайте няколко файла наведнъж
Видео: Как переслать исследования через интернет. - YouTube 2024, Може
Anonim

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

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

for var in ;do $var;done

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

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

${var/originaltext/replacetext}

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

for f in *;do mv $f ${f/test/prod};done

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

mv test.config prod.config

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

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

Препоръчано: