Как сменить имена файлов на произвольные в Linux с помощью bash

Изображение сгенерировано с помощью DALL-E https://openai.com/
Изображение сгенерировано с помощью DALL-E https://openai.com/

Если у вас есть большое количество файлов в Linux, и вы хотите изменить их имена, то можно воспользоваться скриптом на bash. В этой статье мы рассмотрим, как с помощью нескольких простых команд изменить имена файлов на произвольные.

Данный скрипт поможет нам совершить задуманное:

randomname() { head -c24 /dev/urandom | base64 | tr -dc a-zA-Z; }
for f in *.mp3; do mv "$f" `randomname`.mp3; done

Этот скрипт выполняет следующее:

  1. Определяется функция с именем randomname(), которая генерирует случайное произвольное имя из 24 символов, состоящих только из символов латинского алфавита верхнего и нижнего регистра.
  2. В цикле for происходит переименование всех файлов с расширением .mp3 в текущей директории. Каждый файл получает случайное произвольное имя, сгенерированное функцией randomname(), а также остается с расширением .mp3.

Таким образом, скрипт создает копии всех файлов с расширением .mp3 в текущей директории и переименовывает их в произвольные имена, состоящие только из символов латинского алфавита верхнего и нижнего регистра.

Также для удобства можно немного сохранить данный скрипт например в script.sh файл и немного изменить его, чтобы при запуске скрипта параметром передавать путь к каталогу в котором необходимо будет проводить действия с файлами:

#!/bin/bash
randomname() { head -c24 /dev/urandom | base64 | tr -dc a-zA-Z; }
if [ -d "$1" ]; then
cd "$1"
for f in *.mp3; do
mv "$f" "$(randomname).mp3"
done
else
echo "Usage: ./script.sh <directory>"
fi

Первый параметр переданный в командной строке задает директорию, в которой необходимо произвести переименование. В скрипте проверяется, существует ли переданная директория. Если директория существует, то скрипт переходит в эту директорию и выполняет переименование всех mp3 файлов в этой директории с помощью функции randomname(). Если директория не была передана, то выводится сообщение об использовании скрипта.

Перед запуском скрипта необходимо выполнить команду:
chmod +x script.sh
чтобы сделать файл исполняемым

Чтобы вызвать скрипт, необходимо ввести в командной строке следующую команду:

./script.sh /path/to/directory

Если директория находится в текущей директории, то можно ввести следующую команду:

./script.sh .

Понравилась статья и хочешь поддержать автора - подписывайся на канал и ставь лайк!