Sebenarnya, bentuk kedua touch filename
tidak menghapus apa pun dari file - itu hanya membuat file kosong jika tidak ada, atau memperbarui tanggal modifikasi terakhir dari file yang ada.
Dan yang ketiga filename < /dev/null
mencoba menjalankan nama file dengan /dev/null
sebagai input.
cp /dev/null filename
bekerja.
Adapun yang efisien, yang paling efisien adalah truncate -s 0 filename
; lihat di sini: http://linux.die.net/man/1/truncate .
Kalau tidak, cp /dev/null filename
atau > filename
keduanya baik-baik saja. Keduanya membuka dan kemudian menutup file, menggunakan pengaturan truncate-on-open. cp
juga terbuka /dev/null
, sehingga membuatnya sedikit lebih lambat.
Di sisi lain, truncate
kemungkinan akan lebih lambat daripada > filename
ketika dijalankan dari skrip karena menjalankan perintah truncate membutuhkan sistem untuk membuka file yang dapat dieksekusi, memuatnya, dan menjalankannya.
truncate -s 0 filename
?