faça com que o tamanho do arquivo seja pelo menos 1MB

3

Eu estou tentando aprender sobre sistemas operacionais fazendo um sozinho e testando-o em uma caixa virtual, mas VBoxManage convertfromraw não permite que meu arquivo de origem seja muito pequeno (512B).

Existe algum comando bash que faça o seguinte (pseudo-código), mantendo o conteúdo do arquivo?

if (FILE.size < 1MB) {
    FILE.resize(1MB);
}
    
por DutChen18 04.01.2016 / 04:51

2 respostas

2

Assumindo o Linux e um moderno sistema de arquivos (seguro - apenas cresce os arquivos):

fallocate --length=1M yourfile

Sem fallocate (cria um arquivo esparso ao crescer; tenha cuidado com o tamanho):

truncate --size=1M yourfile

Sem fallocate (requer um sistema de 64 bits para arquivos com mais de 2 GB):

file="yourfile"
want=$(( 1 * 1024 * 1024 ))

size=$(stat -c %s "$file")
if (( want > size )); then
    head -c $(( want - size )) /dev/zero >> "$file"
fi
    
por 04.01.2016 / 09:41
0

Em outro tópico :

dd if=/dev/zero bs=1 count=NUMBER >> yourfile

This will read from /dev/zero and append to yourfile NUMBER bytes.

    
por 04.01.2016 / 05:48