Anda mungkin ingin menggunakan perintah truncate:
truncate --size=1G test.txt
SIZE dapat ditentukan sebagai byte, KB, K, MB, M, dll. Saya asumsikan Anda dapat menghitung ukuran yang diinginkan dengan tangan; jika tidak, Anda mungkin dapat menggunakan perintah stat untuk mendapatkan informasi tentang ukuran file saat ini.
perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);'
membuka file untuk dibaca. Namun, untuk memotong file, Anda perlu memodifikasinya, jadi pegangan file hanya-baca tidak akan berfungsi. Anda perlu menggunakan mode "ubah" ("+>"
).
Sebagai masalah tambahan, saya selalu heran ketika orang membiarkan panggilan sistem gagal secara diam-diam dan kemudian bertanya apa yang salah. Sebuah penting bagian dari mendiagnosis masalah adalah melihat pesan kesalahan yang dihasilkan; bahkan jika Anda tidak memahaminya, itu membuat hidup lebih mudah bagi mereka yang Anda minta bantuannya.
Berikut ini akan lebih membantu:
perl -we 'open(FILE, "<", "./test.txt") or die "open: $!";
truncate(FILE, 8) or die "truncate: $!";
close(FILE);'
meskipun diakui itu hanya akan melaporkan "argumen yang tidak valid". Tetap saja, itu adalah informasi yang berguna dan mungkin membuat Anda menyimpulkan bahwa mode terbuka salah (seperti yang terjadi pada saya).
Anda dapat menggunakan tail
untuk memotong 1000 byte terakhir, contoh:
ekor -c 1000 berkas> berkas2
-c menghasilkan 1000 byte akhir file, untuk opsi lainnya:
ekor manusia
Untuk mengganti file asli dengan file yang baru saja Anda buat:
file mv2 file