GNU/Linux >> Belajar Linux >  >> Linux

dd dengan obs dan seek membuat file dengan ukuran yang tidak terduga

Perintah Anda dd if=/dev/zero of=./foo count=1 bs=1 obs=9 seek=1 membuat file dua byte daripada file 10 byte karena interaksi yang tidak terdefinisi dengan baik antara bs dan obs . (Sebut ini bug program jika Anda suka, tetapi mungkin lebih baik didefinisikan sebagai bug dokumentasi.) Anda seharusnya menggunakan keduanya bs atau ibs dan obs .

Secara empiris terlihat bahwa bs menimpa obs , jadi yang dieksekusi adalah dd if=/dev/zero of=./foo count=1 bs=1 seek=1 , yang membuat file dua byte seperti yang Anda lihat.

Jika Anda telah menggunakan dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1 Anda akan mendapatkan file 10 byte seperti yang diharapkan.

Sebagai alternatif, jika Anda ingin membuat file kosong yang tidak memakan ruang data apa pun pada disk, Anda dapat menggunakan truncate yang bernama kontra-intuitif perintah:

truncate --size=10 foo

Halaman manual POSIX menyatakan:

ibs=expr

Tentukan ukuran blok masukan, dalam byte, dengan expr (standarnya adalah 512).

obs=expr

Tentukan ukuran blok keluaran, dalam byte, dengan expr (standarnya adalah 512).

bs=expr

Tetapkan masukan dan keluaran ukuran blok menjadi expr byte, supersedingibs=dan obs= . Jika tidak ada konversi selain sinkronisasi, noerror, dan notrunc yang ditentukan, setiap blok input harus disalin ke output sebagai satu blok tanpa menggabungkan blok pendek.

dd Linux bekerja dengan cara yang sama. Jadi, gunakan ibs sebagai gantinya:

dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1

Linux
  1. Temukan file dan direktori di Linux dengan perintah find

  2. Enkripsi dan dekripsi file menjadi mudah dengan GPG

  3. Enkripsi dan dekripsi file dengan ccrypt

  1. Kecilkan ukuran PDF dengan trik baris perintah ini

  2. Perekaman Layar di Linux Dengan OBS dan Wayland

  3. Bagaimana cara membuat file dengan ukuran tertentu di Linux?

  1. Mengapa Ls Dan Hexdump Tidak Setuju Tentang Ukuran File?

  2. Temukan File dengan Perintah Temukan dan Temukan di Linux

  3. Linux menghapus file dengan ukuran 0