[ACTUALIZACIÓN-1]:Si es posible, dame ventajas para motivarme a aprender los comandos más simples.
Entonces, tengo un archivo en el directorio:
ls | grep *.mp4
vídeo.mp4
Utilizo este comando para cambiar el nombre y mover archivos aleatoriamente en otro directorio:
for a in *.mp4; do mv -n "$a" "${a/*/$RANDOM.mp4}"; done; mv *.mp4 /home/misdeed/Documents
Está bien, obtengo un nombre aleatorio para el video.mp4
cd Documents; ls | grep *.mp4
19889.mp4
pregunta:
Cómo utilizar es:
a="This is name file"
echo $a
Este es el archivo de nombre
para cambiar el nombre de *.mp4 (no al azar) y para obtener
Este es el nombre archivo.mp4
Necesito algo como esto:
a="This is name file"
COMMAND FOR RENAME BUT WITHOUT $RANDOM. I WANT USE $a in renamed file
Respuesta1
Digamos que el nombre original se conoce de antemano y es video.mp4
. Le cambias el nombre con
mv video.mp4 "$a".mp4
Notas:
- Si la variable está vacía (o no configurada), el nombre final será
.mp4
. Los nombres que comienzan con punto (.
) están "ocultos", simplementels
los omite, es necesariols -a
verlos. - Si ya existe un archivo con el nombre de destino, se perderá y el
video.mp4
archivo anterior tomará su nombre. Para evitar contratiempos consideremv -i
; solicitará confirmación si la ruta de destino existe.
Respuesta2
¿Supongo que desea imprimir el nuevo nombre de archivo aleatorio? En ese caso, lo más fácil es reutilizar el valor de su variable aleatoria.
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