.png)
Quiero un resultado como este: name
size
y hash
:
myfile.txt 222M 24f4ce42e0bc39ddf7b7e879a
mynewfile.txt 353M a274613df45a94c3c67fe646
Por name
y size
solo yo tengo
ll -h | awk '{print $9,$10,$11,$12,$5}'
Pero, ¿cómo puedo obtener hash
cada archivo? Lo intenté:
ll -h | awk '{print $9,$10,$11,$12,$5}' | md5sum
Pero solo obtengo un hash.
Respuesta1
No deberías analizar ls, en su lugar usa esto:
for f in * .*; do
[ -f "$f" ] && \
printf "%s %s %s\n" "$f" $(du -h -- "$f" | cut -f1) $(md5sum -- "$f" | cut -d' ' -f1)
done
- El
for
bucle recorre todos los archivos y directorios del directorio actual.[ -f "$f" ]
comprueba si es un archivo normalprintf "%s %s %s\n"
imprime los argumentos en el formato deseado."$f"
el primer argumento es el nombre del archivodu -h -- "$f" | cut -f1
el segundo es el tamaño (legible por humanos), pero no el nombre del archivo,cut
corta todo excepto el primer campomd5sum -- "$f" | cut -d' ' -f1
el tercero es la suma MD5, pero sin el nombre del archivo.