[ОБНОВЛЕНИЕ-1]:Если возможно, поставьте мне минусы для мотивации выучить простейшие команды.
Итак, у меня есть один файл в каталоге:
ls | grep *.mp4
видео.mp4
Я использую эту команду для случайного переименования и перемещения файла в другой каталог:
for a in *.mp4; do mv -n "$a" "${a/*/$RANDOM.mp4}"; done; mv *.mp4 /home/misdeed/Documents
Все в порядке, я получаю случайное имя для видео.mp4
cd Documents; ls | grep *.mp4
19889.mp4
Вопрос:
Как использовать:
a="This is name file"
echo $a
Это имя файла
для переименования *.mp4 (не случайно) и для получения
Это имя файла.mp4
Мне нужно что-то вроде этого:
a="This is name file"
COMMAND FOR RENAME BUT WITHOUT $RANDOM. I WANT USE $a in renamed file
решение1
Допустим, изначальное имя известно заранее и это video.mp4
. Вы переименовываете его с помощью
mv video.mp4 "$a".mp4
Примечания:
- Если переменная пуста (или не задана), окончательное имя будет
.mp4
. Имена, начинающиеся с точки (.
), «скрыты», plainls
пропускает их, вам нужноls -a
их увидеть. - Если файл с целевым именем уже существует, он будет утерян, а предыдущий
video.mp4
файл примет его имя. Чтобы избежать неудач, рассмотритеmv -i
; он запросит подтверждение, если путь назначения существует.
решение2
Я предполагаю, что вы хотите напечатать новое случайное имя файла? В этом случае проще всего повторно использовать значение вашей случайной величины.
for file in *.mp4; do
RANDOM_NAME="${file/*/$RANDOM.mp4}";
mv -n "$file" /home/misdeed/Documents/"$RANDOM_NAME";
echo "This is name $RANDOM_NAME.mp4";
done