Estoy construyendo un sitio web y me gustaría hacer un hash de los nombres de archivo de mis imágenes.Secuencia de comandos para cambiar el nombre de los archivos usando un hash sha1() de su nombre de archivo
¿Cómo puedo crear un archivo de script bash que cambia el nombre de cada archivo en un directorio con el SHA1 del antiguo nombre de archivo?
He intentado:
#!/bin/bash
for file in *
do
if [ -f "$file" ];then
newfile="openssl sha1 $file"
mv "$file" $newfile"
fi
done
Pero eso no funciona :(
EDITAR
Sobre la base de las sugerencias aquí yo probamos este:
#!/bin/bash
for file in old_names/*
do
if [ -f "$file" ];then
newfile=$(openssl sha1 $file | awk '{print $2}')
cp $file new_names/$newfile.png
fi
done
Esto renombra los archivos, pero no estoy seguro de qué es es utilizado para hash el nombre del archivo. ¿La extensión se convirtió en hash? hizo el camino?
INFO
entonces voy a utilizar SHA1 de PHP() para mostrar las imágenes:
echo "<img src=\"images/".sha1("$nbra-$nbrb-".SECRET_KEY).".png\" />\n";
Define 'does not work'. – GolezTrol
¿Los nombres de archivo contienen caracteres espaciales? –
'no se cambia nada de nombre' y 'no' – Manu