GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membuat file dengan ukuran tertentu dari baris perintah?

Gunakan truncate :

truncate -s 14M filename

Dari man truncate :

DESCRIPTION
   Shrink or extend the size of each FILE to the specified size

[...]

 -s, --size=SIZE
          set or adjust the file size by SIZE

Catatan:truncate mungkin tidak tersedia di sistem Anda, mis. di Mac OS X tidak diinstal secara default (tetapi Anda dapat menginstalnya dengan mudah, menggunakan macports misalnya). Dalam kasus ini, Anda mungkin perlu menggunakan dd atau head sebagai gantinya.


EDIT:Cara paling sederhana mungkin adalah truncate jawaban Ashutosh Vishwa Bandhu, tetapi seperti yang ditunjukkan oleh @ offby1 yang membuat file jarang yang mungkin bukan yang Anda inginkan. Solusi di bawah membuat file normal dan lengkap.

Perintah berikut membuat file 14MB bernama foo :

  1. fallocate (terima kasih kepada @Breakthrough yang menyarankannya di komentar dan pilih jawaban Ahmed Masud di bawah yang juga menyebutkannya.)

    fallocate -l 14000000 foo
    

    Perintah ini sangat mengesankan karena secepat truncate (seketika) terlepas dari ukuran file yang diinginkan (tidak seperti solusi lain yang akan lambat untuk file besar) namun membuat file normal, bukan yang jarang :

    $ truncate -s 14MB foo1.txt 
    $ fallocate -l 14000000 foo2.txt 
    $ ls -ls foo?.txt 
        0 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:54 foo1.txt
    13672 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:55 foo2.txt
    
  2. Buat file yang diisi dengan data acak

    dd if=/dev/urandom of=foo bs=14MB count=1
    

    atau

    head -c 14MB /dev/urandom > foo
    
  3. Buat file yang diisi dengan \0 s:

    dd if=/dev/zero of=foo.txt bs=14MB count=1
    

    atau

    head -c 14MB /dev/zero > foo
    
  4. Buat file yang berisi data 14 MB pertama dari file lain:

    head -c 14MB bar.txt > foo
    
  5. Buat file yang berisi data 14 MB terakhir dari file lain:

    tail -c 14MB bar.txt > foo
    

Dalam semua contoh di atas, file akan menjadi 14*1000*1000 jika Anda ingin 14*1024*1024 , ganti MB dengan M . Misalnya:

dd if=/dev/urandom of=foo bs=14M count=1
head -c 14M /dev/zero > foo

fallocate hanya berurusan dalam byte, jadi Anda harus melakukannya (14*1024*1024=14680064)

fallocate -l 14680064 foo

dd bs=1MB count=14 if=/dev/zero of=<yourfilename>

PERINGATAN dd diam-diam akan menimpa apa pun Anda memiliki hak untuk menulis, jika Anda menentukannya baik secara sukarela atau tidak sengaja. Pastikan Anda memahami dd , mis. dengan membaca dd --help , dan Anda tidak mengacaukan baris perintah dd Anda atau Anda dapat dengan mudah membuat kehilangan data yang tidak dapat diubah - bahkan total .

Sebagai permulaan, if= adalah berkas masukan dan of= adalah berkas keluaran . Selalu periksa kembali apakah Anda melakukannya dengan benar, sebelum menjalankan perintah. :)


Linux
  1. Gunakan Perintah fallocate untuk Membuat File dengan Ukuran Tertentu di Linux

  2. Cara melihat ukuran/detail file dari perintah ls di Unix

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

  1. Bagaimana saya bisa menemukan file tertentu dari terminal Linux?

  2. Bagaimana saya bisa menjalankan fungsi dari skrip di baris perintah?

  3. Bagaimana saya bisa mengeksekusi kode PHP dari baris perintah?

  1. Bagaimana cara menghapus konten file dari baris perintah?

  2. Bagaimana saya bisa menulis ke dmesg dari baris perintah?

  3. Bagaimana saya bisa membuka file dengan nomor baris yang ditampilkan dari baris perintah di 'vi'?