Если у вас есть большое количество файлов в Linux, и вы хотите изменить их имена, то можно воспользоваться скриптом на bash. В этой статье мы рассмотрим, как с помощью нескольких простых команд изменить имена файлов на произвольные.
Данный скрипт поможет нам совершить задуманное:
randomname() { head -c24 /dev/urandom | base64 | tr -dc a-zA-Z; }
for f in *.mp3; do mv "$f" `randomname`.mp3; done
Этот скрипт выполняет следующее:
- Определяется функция с именем randomname(), которая генерирует случайное произвольное имя из 24 символов, состоящих только из символов латинского алфавита верхнего и нижнего регистра.
- В цикле 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 .
Понравилась статья и хочешь поддержать автора - подписывайся на канал и ставь лайк!