Я работаю над системой, в которой я бы хотел, чтобы первая буква каждого имени файла была случайной - не обязательно уникальной, просто случайной. Я хотел бы иметь возможность запускать это из задания cron.
Например, я мог бы указать его на список файлов, таких как
song.mp3 song1.mp3 song2.mp3
song3.mp3 song4.mp3 song5.mp3
И иметь он меняет имена файлов на что-то вроде этого:
a song.mp3 g song1.mp3 k song2.mp3
r song3.mp3 l song4.mp3 e song5.mp3
Есть ли способ сделать это?
Вы можете использовать переменную env $ RANDOM:
#!/bin/bash
for F in *.mp3 ; do
mv $F $RANDOM.$F
done
Что будет перемещать файлы:
songa.mp3
song7.mp3
на
1875.songa.mp3
32654.song7.mp3
например .
Вот однострочные версии скрипта @ Joseph, чтобы вы могли вставить его в терминал:
Сначала перейдите в нужный каталог:
cd /PATH/TO/DIRECTORY/
, а затем вы можете запустить команду непосредственно с терминала:
for F in $(ls *.mp3); do mv "$F" "$RANDOM.$F" ; done;
, а более короткая версия будет:
for F in *.mp3 ; do mv "$F" "$RANDOM.$F" ; done
Могу ли я также отметить, что это будет только в любом случае произвольные числа в начале.