Sous Unix, les fichiers comportant des espaces dans le nom sont très compliqués à gérer sachant que l'espace est interprété comme étant un séparateur.
Voici un exemple qui permet d'afficher la somme MD5 d'une liste de fichiers dont les noms comportent des espaces.
# ls -1
20160524 leclerc 1264.pdf
20160528 boulanger 3290.pdf
20160528 cofiroute 620.pdf
20160529 la mie caline 790.pdf
20160529 le marché aux fleurs 2050.pdf
20160601 cordonnerie leclerc 1000.pdf
20160601 leclerc 990.pdf
20160601 pharmacie 3830.pdf
Les 8 fichiers ci-dessus comportent tous des espaces dans leurs noms.
# while read f; do md5sum "$f"; done <<< $(ls)
57709e696d14838ceeff6500728d1569 20160524 leclerc 1264.pdf
9f870fb12e598c7345cb74c6db15afee 20160528 boulanger 3290.pdf
5bb71357967db84baf6ed4a5fb56c552 20160528 cofiroute 620.pdf
690471607356b9ea798d3d44d69f478d 20160529 la mie caline 790.pdf
519a250059f5d8bc93af22d2ae02512f 20160529 le marché aux fleurs 2050.pdf
a08e6094bc01a34c508761ebbdae6418 20160601 cordonnerie leclerc 1000.pdf
c8f36624113710939365dd0a4daeb30c 20160601 leclerc 990.pdf
387ce36eaa18d383bd1950ee17a4fdff 20160601 pharmacie 3830.pdf
La commande read, dans la boucle while, interprète correctement les noms de fichiers provenant de la commande ls.
Ne pas oublier les 3 chevrons vers la gauche "<<<" entre la commande ls et la boucle while