Shell Geek Перейменувати кілька файлів відразу
Припустимо, у вас є каталог з сотнями файлів з неправильними іменами файлів, і ви хочете замінити всі файли, що містять тест с prod. (це надуманий приклад). Ми можемо легко зробити це за допомогою команди «за» у bash, у поєднанні з трохи баш добробуту. Сьогодні ми дізнаємося, як замінити текст у змінній у циклі for.
Команда "for" працює так:
для var in; do $ var; зроблено
Можна замінити з будь-яким шаблоном відповідності файлу, наприклад * або * .txt, і ви можете замінити з будь-якою командою linux. Команда буде виконуватися послідовно на кожному з файлів, відповідних шаблону відповідності файлу.
Саме тут обробка змінних bash робить її ще більш цікавою. Замість того, щоб робити щось на зразок “mv $ var”, ми можемо замінити текст у імені файлу за допомогою цього синтаксису:
$ var / originaltext / replacetext
Тепер, якщо ми виконаємо цю команду в нашому каталозі:
для f в *; робимо mv $ f $ f / test / prod
Для кожного файлу, що відповідає *, bash виконає команду, подібну до цієї:
mv test.config prod.config
Я виявив, що знання оболонки має неоціненне значення при адмініструванні серверів або просто для керування колекцією файлів, а також заощаджує мені години роботи, яка могла б працювати вручну.
І так, я розумію, що існує ряд інструментів, які дозволяють перейменувати кілька файлів.