Eu gostaria de gerar um arquivo com o nome example.file
. eu poderia usar
touch example.file
mas quero que o arquivo tenha exatamente 24 MB de tamanho. Eu já verifiquei a página de manual do toque, mas não há parâmetro como este. Existe uma maneira fácil de gerar arquivos de um determinado tamanho?
bash
command-line
files
R_User
fonte
fonte
Respostas:
Você pode usar o dd:
ou
ou, no Mac,
fonte
bs=1G count=1
dd if=/dev/zero of=output.dat bs=24m count=1
m
.Sob Linux ou Cygwin não incorporado (ou qualquer sistema com GNU coreutils) e FreeBSD:
Isso cria um arquivo cheio de bytes nulos. Se o arquivo já existir e for menor, ele será estendido para o tamanho solicitado com bytes nulos. Se o arquivo já existir e for maior, será truncado para o tamanho solicitado.
Os bytes nulos não consomem espaço em disco; o arquivo é um arquivo esparso .
Em muitos sistemas,
head -c 24m </dev/zero >example.file
cria um arquivo não esparso cheio de bytes nulos. Sehead
não houver uma-c
opção no seu sistema (é comum, mas não no POSIX), você pode usá-lodd bs=1024k count=24 </dev/zero >example.file
(isso é compatível com POSIX).fonte
Se você não se importa com o conteúdo do arquivo, isso é muito mais rápido do que usar
dd
:Obviamente, usar
dd
um arquivo de 24 MB não demorará muito tempo em um sistema moderno, mas arquivos maiores podem ser notavelmente lentos.fonte
Você pode usar o dd:
Ou caso você esteja usando o Solaris
fonte
-n
para criar um arquivo esparsofonte
fallocate
poderia ser uma boa resposta, mas por que todas as outras linhas? Reduza sua resposta para que ela faça exatamente o que foi solicitado e nada mais.fallocate -l 10M somefile.dump