echo -en 'blob 2\01\n' | cat -v
не дает того, что вы хотите, результат blob 2^A
вместо blob 2^@1
.
То, что вы хотите, это
echo -en 'blob 2\00001\n' | cat -v
blob 2^@1
Это потому, что \0
запускает числовую последовательность для echo
, а затем echo
ожидает до 3 цифр. То есть \01
для echo
- это 1 символ с кодом 1; для получения \0
+ 1
необходимо использовать \0000
для символа с кодом 0, затем следующие символы равны 1.
echo -en 'blob 2\00001\n' | sha1sum
d00491fd7e5bb6fa28c517a0bb32b8b506539d4d -
Voila!