Chciałbym wygenerować plik o nazwie example.file
. mógłbym użyć
touch example.file
ale chcę, aby plik miał dokładnie 24 MB. Już sprawdziłem stronę dotykową, ale nie ma takiego parametru. Czy istnieje prosty sposób na generowanie plików o określonym rozmiarze?
bash
command-line
files
R_User
źródło
źródło
Odpowiedzi:
Możesz użyć dd:
lub
lub na Macu
źródło
bs=1G count=1
dd if=/dev/zero of=output.dat bs=24m count=1
m
.W niewbudowanym systemie Linux lub Cygwin (lub dowolnym systemie z rdzeniami GNU) i FreeBSD:
Spowoduje to utworzenie pliku pełnego pustych bajtów. Jeśli plik już istnieje i jest mniejszy, zostaje rozszerzony do żądanego rozmiaru o zerowych bajtach. Jeśli plik już istnieje i jest większy, zostaje obcięty do żądanego rozmiaru.
Puste bajty nie zajmują miejsca na dysku, plik jest plikiem rzadkim .
W wielu systemach
head -c 24m </dev/zero >example.file
tworzy nieskomplikowany plik pełen pustych bajtów. Jeślihead
nie ma-c
opcji w twoim systemie (jest to powszechne, ale nie w POSIX), możesz użyćdd bs=1024k count=24 </dev/zero >example.file
zamiast tego (jest to zgodne z POSIX).źródło
Jeśli nie zależy Ci na zawartości pliku, jest to znacznie szybsze niż użycie
dd
:Oczywiście użycie
dd
do pliku 24 MB nie zajmie więcej czasu w nowoczesnym systemie, ale większe pliki mogą być zauważalnie wolne.źródło
Możesz użyć dd:
Lub w przypadku korzystania z Solaris
źródło
-n
do utworzenia rzadkiego plikuźródło
fallocate
może być dobrą odpowiedzią, ale dlaczego wszystkie inne linie? Wytnij swoją odpowiedź, aby spełniała wszystkie wymagania i nic więcej.fallocate -l 10M somefile.dump