Как вы можете обрезать файлы с помощью командной строки?

Что такое консольный эквивалент следующего кода Python:

target = file("disk", "w") # create a file target.seek(2*1024*1024*1024) # skip to 2 GB target.write("\0") target.close() 

Может быть, какое-то заклинание dd? Идея заключается в создании файла с видимым размером 2 ГБ для использования, например, в виртуализации.

 kvm disk -cd whatever.iso #Only allocate space as necessary 

3 Solutions collect form web for “Как вы можете обрезать файлы с помощью командной строки?”

Вообще говоря, просто используйте dd , но, как вы упомянули об использовании виртуализации KVM, вы можете рассмотреть возможность использования qemu-img :

 qemu-img create -f raw disk 2G 

Он делает то же самое, что и команда dd в ответ Криса Дауна.

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

 fallocate -l 2G disk 

Тем не менее, он недоступен на всех платформах и файловых системах. Это не будет записывать нули, но просто назначает блоки файлу, а не делает это по требованию позже, каждый раз, когда он должен расширять файл.

Вы можете создать разреженный файл, например, с помощью dd :

 dd of=file bs=1 seek=2G count=0 
 $ du file 0 disk $ du --apparent-size file 2097152 disk 

См. Также команду обрезания GNU:

 truncate -s 2G some-file 
  • Ускоренный путь к DD?
  • Записать сжатый файл .img в файл устройства
  • Перенос содержимого блочного устройства LVM, обеспечивающего согласованность - моментальный снимок LVM?
  • Как использовать цветовую палитру (FBIOPUTCMAP)?
  • путают скорость записи dd и кеш страниц VFS
  • live dd поверх встроенной корневой части только для чтения
  • «Невозможно выделить память» при чтении с ленты SCSI
  • Используйте резервный файл из dd для восстановления жесткого диска, а также извлеките файлы
  • Как преобразовать двузначные текстовые данные в двоичное (представление бит)
  • Встроенное устройство: как выполнять сырые чтения и запись на флэш (emmc / movinand) в обход кеша файловой системы
  • как скопировать часть текстового файла побайтно в другой текстовый файл? dd, head или?
  • Linux и Unix - лучшая ОС в мире.