Que tal isso:
#!/bin/bash
# test whether first argument exists and is a regular file, if not exit
[ -f "$1" ] || exit 1
# put 1440 bytes per output file
split -b 1440 "$1" "$1". &&
# merge files again
cat "$1".* >"${1%/*}/new-${1##*/}"
Um script começa com uma especificando o programa com o qual ele deve ser executado, neste caso,% código%. Primeiro, testamos o primeiro argumento para o script ser um arquivo regular e sair, se não for. O comando /bin/bash
divide o arquivo fornecido como o primeiro argumento e cria arquivos de saída como split
para um arquivo image.jpg.aa
. Somente se image.jpg
sair com êxito, o comando split
irá mesclá-los novamente usando Expansão do nome do caminho de cat
e Expansão de Parâmetros e salva a saída (ou seja, o arquivo mesclado) como bash
para um arquivo new-image.jpg
.
Salve este script como, por exemplo, image.jpg
, torne-o executável com splitmerge.bash
e execute-o com:
splitmerge.bash image.jpg
Todos os arquivos de saída são criados no diretório do arquivo de entrada, independentemente do diretório atual. Se o script e / ou o arquivo a ser dividido não estiver localizado no diretório atual, use caminhos absolutos, por exemplo:
~/scripts/splitmerge.bash /home/thmk/test/image.jpg