GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso elencare i blocchi di dati di un file su Linux?

Soluzione 1:

Puoi utilizzare lo strumento "debugfs" per visualizzare le informazioni sul file sulla riga di comando o su interactivley. Puoi utilizzare:

# debugfs /dev/<spartition>
# stat /path/to/file

o

# debugfs -R "stat /path/to/file" /dev/<partition>

ad esempio:

# debugfs -R "stat /etc/passwd"  /dev/sda5
Inode: 435914   Type: regular    Mode:  0644   Flags: 0x0
Generation: 979004472    Version: 0x00000000
User:     0   Group:     0   Size: 1577
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x4a2d6f78 -- Mon Jun  8 23:07:20 2009
atime: 0x4a2d6f79 -- Mon Jun  8 23:07:21 2009
mtime: 0x4a2d6f78 -- Mon Jun  8 23:07:20 2009
Size of extra inode fields: 4
BLOCKS:
(0):1767438
TOTAL: 1

Soluzione 2:

Guarda la sintassi per "debugfs" e in particolare il comando "stat". Questo ti mostrerà un elenco dei blocchi di dati utilizzati da un file. Puoi passare parametri a "debugfs" con l'argomento "-f" per chiamarlo da uno script.

Soluzione 3:

Un modo semplice per ottenere l'elenco dei blocchi (senza dover leggere dalla partizione come nel debugfs risposte) consiste nell'usare il FIBMAP ioctl. Non conosco alcun comando per farlo, ma è molto semplice scriverne uno; una rapida ricerca su Google mi ha fornito un esempio di utilizzo di FIBMAP, che fa esattamente quello che vuoi. Un vantaggio è che funzionerà su qualsiasi filesystem che supporti bmap operazione, non solo ext3.

Un'alternativa più recente (e più efficiente) è il FIEMAP ioctl, che può anche restituire informazioni dettagliate sugli extent (utile per ext4).

Soluzione 4:

hdparm --fibmap /path/to/filename

Non lavorerò su zfs, ma su ext4, btrfs, (v)fat, ecc.

man 8 hdparm :

--fibmap Quando viene utilizzato, questo deve essere l'unico flag fornito. Richiede un percorso di file come parametro e stamperà un elenco dei deviceextents (intervalli di settore) occupati da quel file su disco. I numeri di settore vengono forniti come numeri LBA assoluti, a cui fa riferimento il settore 0 del dispositivo fisico (non la partizione o il filesystem). Queste informazioni possono quindi essere utilizzate per una varietà di scopi, come esaminare il grado di frammentazione di file più grandi o determinare i settori appropriati da corrompere deliberatamente durante le procedure di test di fault injection.


Linux
  1. Come copiare le autorizzazioni e la proprietà dei file su un altro file in Linux

  2. Come gestire le capacità dei file Linux

  3. Come trovare un file in Linux

  4. Come rinominare un file in Linux?

  5. Come posso monitorare i dati su una porta seriale in Linux?

Come verificare il checksum su Linux

Come rinominare uno o più file in Linux

Come elencare i pacchetti installati in Linux

Come visualizzare i dati da un file di testo in Linux

Come scrivere dati in file in Linux

Come collegare simbolicamente un file in Linux