It's a bad idea to parse the output of ls
. The primary job of ls
is to list the attributes of files (size, date, etc.). The shell itself is perfectly capable of listing the contents of a directory, with wildcards.
It's quite simple to run md5sum
on all the files in the current directory and put the output in a file: redirect its output to the desired output file.
md5sum * >/tmp/md5sums.txt
If you want the output to be sorted by file name, pipe the output of md5sum
into sort
.
md5sum * | sort -k 2 >/tmp/md5sums.txt
Note that numeric sorting (-n
) will only give useful results if the file names are purely numeric. If all you need is for the output to be deterministic, how you sort doesn't matter.