GNU/Linux >> Belajar Linux >  >> Linux

Metode Paling Efisien Untuk Mengosongkan Isi File?

Saya mengetahui tiga metode untuk menghapus semua entri dari sebuah file.

Mereka adalah

  • >filename
  • touch filename
  • filename < /dev/null

Dari ketiganya saya menyalahgunakan >filename sebanyak itu membutuhkan jumlah penekanan tombol paling sedikit.

Namun, saya ingin tahu mana yang paling efisien dari ketiganya (jika ada metode yang lebih efisien) sehubungan dengan file log besar dan file kecil.

Juga, bagaimana ketiga kode itu beroperasi dan menghapus konten?

Sunting :seperti yang dibahas dalam jawaban ini, ini sebenarnya tidak hapus filenya!

Jawaban yang Diterima:

Sebenarnya, bentuk kedua touch filename tidak menghapus apa pun dari file – hanya membuat file kosong jika tidak ada, atau memperbarui tanggal modifikasi terakhir dari file yang ada.

Dan filename < /dev/null ketiga mencoba menjalankan nama file dengan /dev/null sebagai masukan.

cp /dev/null filename bekerja.

Untuk efisien, yang paling efisien adalah truncate -s 0 filename (lihat di sini).

Jika tidak, cp /dev/null filename atau > filename keduanya baik-baik saja. Keduanya membuka lalu menutup file, menggunakan pengaturan truncate-on-open. cp juga membuka /dev/null , sehingga membuatnya sedikit lebih lambat.

Sebaliknya, truncate kemungkinan akan lebih lambat dari > filename ketika dijalankan dari skrip karena menjalankan perintah truncate mengharuskan sistem untuk membuka file yang dapat dieksekusi, memuatnya, dan kemudian menjalankannya.


Linux
  1. Metode Paling Portabel Meluncurkan Emulator Terminal?

  2. Basa'?

  3. Apakah Mv Atomic Di Fs?

  1. Bagaimana Cara Mendapatkan Jumlah Md5 Dari Isi Direktori Sebagai Satu Jumlah?

  2. Cara paling efisien untuk menyalin file di Linux

  3. Python FTP mendapatkan file terbaru berdasarkan tanggal

  1. Salin Isi File Ke Clipboard Tanpa Menampilkan Isinya?

  2. Salin konten file ke clipboard di terminal Linux

  3. Bagaimana cara menampilkan isi file secara rekursif?