Как сделать разреженный файл на Android с терминалом

929
Jaïr Paalman

Я пытаюсь сделать разреженный файл на Android. Для этого я использую Android Terminal Emulator. Я установил Busybox, чтобы я мог использовать команду dd. Другие команды, такие как усечение, не установлены. Мой вопрос: кто-нибудь знает, как сделать разреженный файл с терминалом Android?

Я пробовал некоторые команды, которые я нашел в интернете:

dd if=/dev/zero of=/sdcard/file.img bs=1 count=0 seek="wanted size" 

Но файл не будет сделан. Я также попробовал:

dd if=/dev/zero of=/sdcard/file.img bs="wanted size" count=1. 

Но я бы получил следующую ошибку:

dd "path of if" invalid argument 

Кто-нибудь знает, как сделать это правильно?

0
Попытайтесь быть более конкретным в отношении "какой-то ошибки". cYrus 8 лет назад 0

1 ответ на вопрос

1
Jaïr Paalman

Я уже нашел ответ сам.

dd if=/dev/zero of=/sdcard/file.img bs=1 count=0 seek="wanted size" 

Не сделал бы файл, так как размер на диске определяется размером блока и количеством. Если установить счетчик равным 0, файл будет иметь размер 0 байт и, следовательно, его не будет.

dd if=/dev/zero of=/sdcard/file.img bs="wanted size" count=1 

Даст следующую ошибку:

dd "path of if" invalid argument 

Проблема здесь в том, что есть ограничение на размер блока. Это не может быть установлено настолько большим. Мне нужно было рассчитать количество для желаемого размера блока. Я выбрал 64к. Это рабочая команда для создания разреженного файла размером 512 МБ:

dd if=/dev/zero of=/sdcard/file.img bs=64k count=8192 

Использование поиска не является обязательным.

Использование `seek` не * необязательно *. То, что вы создали, вовсе не является * разреженным * файлом. Daniel B 8 лет назад 1