Bayangkan sebuah file dibuat dengan:
truncate -s1T file
echo test >> file
truncate -s2T file
Saya sekarang memiliki file 2 tebibyte (yang menempati 4kiB pada disk), dengan "test\n"
tulisan di tengah.
Bagaimana saya memulihkannya secara "test"
efisien, yaitu tanpa harus membaca seluruh file.
tr -d '\0' < file
Akan memberi saya hasilnya tetapi itu akan memakan waktu berjam-jam.
Yang saya suka adalah sesuatu yang hanya menampilkan bagian file yang tidak jarang (jadi hanya di atas "test\n"
atau lebih mungkin, blok 4kiB dialokasikan pada disk yang menyimpan data itu).
Ada API untuk mengetahui bagian mana dari file yang dialokasikan (FIBMAP, FIEMAP, SEEK_HOLE, SEEK_DATA ...), tetapi alat apa yang memaparkannya?
Solusi portabel (setidaknya untuk OS yang mendukung API tersebut) akan dihargai.
tr
sejak masih membaca seluruh file dan melakukan lebih dari sekadar menghapus byte NUL.
strings
?