GNU/Linux >> Tutoriales Linux >  >> Linux

Información detallada de archivos dispersos en Linux

Hay una pregunta similar en SO. La respuesta actualmente aceptada por @ephemient sugiere usar un ioctl llamado fiemap que está documentado en linux/Documentation/filesystems/fiemap.txt . Citando de ese archivo:

El fiemap ioctl es un método eficiente para que el espacio de usuario obtenga asignaciones de extensión de archivo. En lugar del mapeo bloque por bloque (como bmap), fiemap devuelve una lista de extensiones.

Parece que este es el tipo de información que estás buscando. El soporte por sistemas de archivos es nuevamente opcional:

Los sistemas de archivos que deseen admitir fiemap deben implementar un ->fiemap devolución de llamada en su inode_operations estructura.

Soporte para el SEEK_DATA y SEEK_HOLE argumentos a lseek que mencionó de Solaris se agregó en Linux 3.1 de acuerdo con la página de manual, por lo que también puede usar eso. El fiemap ioctl parece ser más antiguo, por lo que podría ser más portátil en diferentes versiones de Linux por ahora, mientras que lseek podría ser más portátil entre sistemas operativos si Solaris tiene lo mismo.


Hay una colección de programas de Python llamados sparseutils que usan SEEK_HOLE y SEEK_DATA para determinar qué secciones del archivo se representan como agujeros y cuáles son datos. El uso es bastante sencillo. mksparse se puede usar para generar un archivo disperso de acuerdo con un diseño dado.

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

El sparsemap El programa se puede usar para imprimir el diseño en la salida estándar:

 $ sparsemap example
 HOLE 4096
 DATA 4096
 HOLE 4096

Linux
  1. Conceptos básicos de los permisos de archivos de Linux

  2. Linux – ¿Todo es un archivo?

  3. Linux:¿cómo se inspecciona la información de la estructura del directorio de un archivo Unix/linux?

  4. Cómo crear archivos dispersos en Linux usando el comando 'dd'

  5. ¿Qué son los archivos dispersos en Linux?

Comando Gzip en Linux

Comando Gunzip en Linux

Comando Stat en Linux

¿Qué es umask en Linux?

Cómo vincular un archivo en Linux

Extraiga el archivo tar.gz en Linux