Você não deve analisar ls , em vez disso use:
for f in * .*; do
[ -f "$f" ] && \
printf "%s %s %s\n" "$f" $(du -h -- "$f" | cut -f1) $(md5sum -- "$f" | cut -d' ' -f1)
done
- O loop
for
é executado por todos os arquivos e diretórios no diretório atual.-
[ -f "$f" ]
verifica se é um arquivo normal -
printf "%s %s %s\n"
imprime os argumentos no formato desejado. -
"$f"
o primeiro argumento é o nome do arquivo -
du -h -- "$f" | cut -f1
o segundo é o tamanho (legível por humanos), mas não o nome do arquivo,cut
corta todos exceto o primeiro campo ausente -
md5sum -- "$f" | cut -d' ' -f1
third é a soma MD5, mas sem o nome do arquivo.
-