Домашня » як » Shell Geek Перейменувати кілька файлів відразу

    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

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

    І так, я розумію, що існує ряд інструментів, які дозволяють перейменувати кілька файлів.