Usando este comando lz4:
$ apt search ^lz4$
Sorting... Done
Full Text Search... Done
lz4/focal,now 1.9.2-2 amd64 [installed,automatic]
Fast LZ compression algorithm library - tool
$ lz4 --version
*** LZ4 command line interface 64-bits v1.9.2, by Yann Collet ***
Este comando normalmente cria um filename.lz4
arquivo (assim como o gzip faz):
$ lz4 -9 -k filename
No entanto, esse comando não e, em vez disso, grava em stdout quando não estou dizendo:
$ t=$(lz4 -9 -k filename)
Warning : using stdout as default output. Do not rely on this behavior: use explicit `-c` instead !
bash: warning: command substitution: ignored null byte in input
Por que está fazendo isso? É um bug ou existe uma razão documentada em algum lugar?
O comportamento parece ser um recurso - não um bug. Não consigo encontrá-lo documentado em nenhum lugar, exceto no código-fonte :
No Linux,
IS_CONSOLE
usaisatty
para determinar se os descritores de arquivo estão conectados a um terminal.Conforme sugerido no comentário, você pode usar a
-m
opção para forçar a geração de um arquivo de saída nos casos em que não há tty: