Se eu tiver um arquivo grande e precisar dividi-lo em pedaços de 100 megabytes, farei
split -b 100m myImage.iso
Isso geralmente me dá algo como
xaa
xab
xac
xad
E para reuni-los, tenho usado
cat x* > myImage.iso
Parece que deve haver uma maneira mais eficiente do que ler cada linha de código em um grupo de arquivos cat
e redirecionar a saída para um novo arquivo. Como uma maneira de apenas abrir dois arquivos, remover o EOF
marcador do primeiro e conectá-los - sem ter que percorrer todo o conteúdo.
O Windows / DOS possui um comando de cópia para arquivos binários. A ajuda menciona que este comando foi projetado para poder combinar vários arquivos. Funciona com esta sintaxe: ( /b
é para o modo binário)
copy /b file1 + file2 + file3 outputfile
Existe algo semelhante ou uma maneira melhor de juntar arquivos grandes no Linux do que o gato?
Atualizar
Parece que cat
é de fato o caminho certo e a melhor maneira de ingressar em arquivos. Fico feliz em saber que eu estava usando o comando certo o tempo todo :) Obrigado a todos por seus comentários.
cat x*
você poderia considerar a expansão cinta shell, cat xa{a..g}
o que amplia a seqüência especificada para cat
Xaa xab XAC xad Xae XAF XAG
cat x*
? Será que a nova definição de local não afectam também split
para que, se split
e cat x*
foram usados no mesmo sistema que sempre funciona?
split.c
em GNU Coreutils, os sufixos são construídos a partir de uma matriz fixa de caracteres: static char const *suffix_alphabet = "abcdefghijklmnopqrstuvwxyz";
. O sufixo não seria afetado pelo código do idioma. (Mas eu não acho que qualquer local sã iria reorganizar as letras minúsculas, mesmo EBCDIC mantém sua ordem standard.)
cat x*
, porque a ordem dos arquivos depende das suas configurações de localidade. É melhor começar a digitarcat x
, do que pressionar Esc e depois*
- você verá a ordem expandida dos arquivos e poderá reorganizá-los.