[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: md5sum outputs '-' when using stdin
From: |
Stephane Chazelas |
Subject: |
Re: md5sum outputs '-' when using stdin |
Date: |
Sun, 25 Aug 2019 21:03:33 +0100 |
User-agent: |
NeoMutt/20171215 |
2019-08-23 10:41:01 +0100, address@hidden:
[...]
> $ echo 'hello world' | md5sum
> 6f5902ac237024bdd0c176cb93063dc4 -
>
> What's use is the '-'?
>
> Obviously it indicates the file content it taken from the
> standard input, but is that of any actual use?
[...]
It is used by md5sum -c.
$ echo test | md5sum | tee s
d8e8fca2dc0f896fd7cb4cb0031ba249 -
$ echo test | md5sum -c s
-: OK
Having said that, it's far less common a usage pattern than doing:
sum=$(md5sum < file)
And I agree it is annoying having to strip that "-".
It's the same kind of "annoying" as the
length=$(wc -c < file)
That has blanks around the number in many wc implementations and
which GNU wc fixed.
FWIW, the ast-open implementation of "wc" doesn't output that
"-" and doesn't treat "-" as meaning stdin. If you want to
"md5sum -c" stdin there, you need to use "/dev/stdin" instead of
"-".
I'd rather GNU md5sum only output "-" when "-" is passed on the
command line.
Maybe --quiet could be used to skip outputting file names.
--
Stephane