GNU/Linux >> Belajar Linux >  >> Linux

Informasi file renggang terperinci di Linux

Ada pertanyaan serupa di SO. Jawaban yang saat ini diterima oleh @ephemient menyarankan menggunakan ioctl disebut fiemap yang didokumentasikan dalam linux/Documentation/filesystems/fiemap.txt . Mengutip dari file itu:

Fiemap ioctl adalah metode yang efisien untuk userspace untuk mendapatkan pemetaan fileextent. Alih-alih pemetaan blok demi blok (seperti bmap),fiemap menampilkan daftar luasan.

Kedengarannya seperti ini adalah jenis informasi yang Anda cari. Dukungan oleh sistem file juga opsional:

Sistem file yang ingin mendukung fiemap harus menerapkan ->fiemap callback pada inode_operations mereka struktur.

Dukungan untuk SEEK_DATA dan SEEK_HOLE argumen ke lseek Anda sebutkan dari Solaris telah ditambahkan di Linux 3.1 menurut halaman manual, jadi Anda dapat menggunakannya juga. fiemap ioctl tampaknya lebih tua, jadi mungkin lebih portabel di berbagai versi Linux untuk saat ini, sedangkan lseek mungkin lebih portabel di seluruh sistem operasi jika Solaris memiliki hal yang sama.


Ada kumpulan program python bernama sparseutils yang menggunakan SEEK_HOLE dan SEEK_DATA untuk menentukan bagian mana dari file yang direpresentasikan sebagai lubang dan mana yang merupakan data. Penggunaannya cukup mudah. mksparse dapat digunakan untuk menghasilkan file renggang sesuai dengan beberapa tata letak yang diberikan.

 $ echo hole,data,hole | mksparse --hole-size 4096 --data-size 4096 example
 $ du -sh example
 4.0K   example

sparsemap program dapat digunakan untuk mencetak tata letak ke stdout:

 $ sparsemap example
 HOLE 4096
 DATA 4096
 HOLE 4096

Linux
  1. Linux – Semuanya Adalah File?

  2. Linux – Bagaimana Cara Memeriksa Informasi Struktur Direktori File Unix/linux?

  3. Cara membuat file sparse di Linux menggunakan perintah 'dd'

  1. Cara memindahkan file di Linux

  2. Dasar-dasar Izin File Linux

  3. Apa itu file jarang di Linux

  1. Memahami Izin File Linux

  2. Perintah Ekor Linux

  3. Perintah Sentuh Linux