Shell Geek: переименуйте несколько файлов одновременно

Shell Geek: переименуйте несколько файлов одновременно
Shell Geek: переименуйте несколько файлов одновременно

Видео: Shell Geek: переименуйте несколько файлов одновременно

Видео: Shell Geek: переименуйте несколько файлов одновременно
Видео: Как отправить файл до 100ГБ в интернете - YouTube 2024, Ноябрь
Anonim

Допустим, у вас есть каталог с сотнями файлов с неправильными именами файлов, и вы хотите заменить каждое имя файла, содержащее тестовое задание с тычок, (это надуманный пример). Мы можем легко сделать это с помощью команды «for» в bash, в сочетании с немного боссом. Сегодня мы узнаем, как заменить текст в переменной в цикле for.

Команда «for» работает следующим образом:

for var in ;do $var;done

Вы можете заменить с любым шаблоном соответствия файла, таким как * или *.txt, и вы можете заменить с любой командой linux. Команда будет запускаться последовательно в каждом из файлов, соответствующих шаблону соответствия файла.

В этом случае обработка переменной bash делает ее еще более интересной. Вместо того, чтобы просто делать что-то вроде «mv $ var», мы можем заменить текст в имени файла, используя этот синтаксис:

${var/originaltext/replacetext}

Итак, если мы запустим эту команду в нашем каталоге:

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

Для каждого файла, совпадающего с *, bash выполнит команду, подобную этой:

mv test.config prod.config

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

И да, я понимаю, что существует ряд инструментов, которые могут выполнять переименование нескольких файлов.

Рекомендуемые: