Иногда вам может понадобиться переименовать файлы в нижний или верхний регистр в Linux. В этой статье мы узнаем, как это сделать. Существует несколько способов переименования файлов и папок. Мы рассмотрим один из них, используя функции find, rename и xargs. Этот способ прост и удобен в использовании.
Как переименовать все файлы в нижний или верхний регистр в Linux
Мы рассмотрим простой способ переименования всех файлов в нижний регистр в Linux.
Переименование файлов в нижний регистр с помощью find, rename и xargs
Мы будем использовать функцию rename для переименования файлов, поскольку функция rename позволяет переименовывать несколько файлов и папок одновременно. Кроме того, в ней есть ярлыки для прямого переименования файлов и папок в нижний или верхний регистр. Сначала мы воспользуемся функцией find, чтобы получить список всех файлов и подпапок в нашей целевой папке.
1 | find /data -depth |
Мы используем параметр -depth, чтобы получить исчерпывающий список всех файлов и папок в нашем целевом местоположении. Кроме того, он перечисляет содержимое каждой папки и подпапки перед тем, как перечислить саму папку или подпапку.
Мы передаем вышеуказанный вывод команде xargs, которая создаст отдельную команду переименования для каждого файла и папки в нашей целевой папке.
1 | find /data -depth | xargs -n 1 rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; |
В приведенной выше команде параметр -n1 используется для указания xargs использовать не более 1 аргумента на строку ввода. Мы также используем $1 для указания существующего имени файла и L$2 для указания переименования существующего имени файла в нижний регистр.
Если вы хотите переименовывать только папки, а не файлы, вы можете добавить опцию -type d в команду find.
1 | find /data -depth -type d | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; |
Если вы хотите переименовать только файлы, а не папки, используйте опцию -type f в команде find.
1 | find /data -depth -type f | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; |
Переименование в верхний регистр с помощью find, rename и xargs
Аналогично можно переименовать файлы и папки в верхний регистр, просто заменив L$2 на U$2 (L - нижний регистр, U - верхний регистр) в приведенных выше командах.
1 | find /data -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\U$2/' {} \; |
Если вы хотите переименовать только папки, а не файлы, вы можете добавить опцию -type d к команде find.
1 2 | find /data -depth -type d | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\U$2/' {} \; |
Если вы хотите переименовать только файлы, а не папки, используйте опцию -type f в команде find.
1 2 | find /data -depth -type f | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\U$2/' {} \; |
Заключение
В этой статье мы узнали, как переименовать в нижний или верхний регистр в Linux.