cat combinando não todos os formatos de arquivo - mas quais?

1

No GNU⁄Linux, combinar arquivos com cat funciona de maneira milagrosa - pelo menos para mim:

cat part_* > /destination/file.xyz

com o mesmo formato de arquivo para ambos os arquivos de origem e de destino funciona como um charme para formatos como .ogg e mpg e, claro, arquivos de texto. Mas eu tenho alguns bastante interessantes para resultados estranhos com outros arquivos.

  • .flac → Tudo funciona bem, exceto que o arquivo combinado é exibido com o comprimento do arquivo inicial e depois reproduzido em todas as outras partes enquanto ainda exibe o comprimento do primeiro arquivo (assim como as "faixas ocultas" "em CDs naquela época)

  • .pdf → sai sem uma mensagem de erro e não faz nada, exceto exibir o primeiro arquivo (o logo após cat no comando) sob o nome dado como destino, basicamente salvando uma cópia com outro nome .

Pergunta : existe outra maneira que não seja Trial & Erro ao descobrir quais formatos de arquivo podem ser mesclados com cat e quais não podem?

Eu cheguei tão longe que depende muito de certos formatos de cabeçalho dentro dos arquivos - mas então eu me pergunto: "Eu pensei que cada arquivo executável tem que começar com um cabeçalho ?!".

    
por erch 19.08.2014 / 23:13

2 respostas

1

Você pergunta,

Is there a way other than Trial & Error to find out which file formats can be merged with cat and which can't?

E em um comentário sobre outra pergunta que você escreve,

Any chance for me to tell what cat might assume as header and what not

Isso eu acho que é a questão fundamental: cat não sabe nem se importa com o formato do arquivo. Ele pega um ou mais arquivos e produz um único fluxo de saída que é o resultado da cópia consecutiva dos arquivos de origem.

Em seguida, é responsabilidade do aplicativo que lida com o arquivo resultante para determinar se o arquivo mesclado resultante "faz sentido".

Por exemplo, para mesclar arquivos PDF, é necessário usar algo como pdftk ; uma concatenação simples não funciona. Como você percebeu, alguns tipos de arquivos de música digital podem ser concatenados, mas outros não. Em alguns casos, você pode descobrir que um jogador pode manipular um arquivo concatenado, mas outro não; não há regra simples.

    
por 20.04.2015 / 00:00
0

Você basicamente respondeu sua própria pergunta; depende se o formato do arquivo tem ou não um cabeçalho.

Quanto a "executável" ... um shell-script é "executável", o shell sabe como executá-lo devido ao seu comentário na primeira linha e, se você mesclar dois scripts, poderá obter resultados significativos. Mas executáveis de um formato binário, por ex. elf não vai funcionar muito bem se você combiná-los;)

    
por 19.08.2014 / 23:25