GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la diferencia entre `fallocate --dig-holes` y `fallocate --punch-hole` en Linux?

En resumen:

  • --dig-holes hace que un archivo sea disperso sin modificar su contenido (como lo ve un programa que lo lee).
  • --punch-hole crea un agujero en un archivo, posiblemente modificando los datos existentes.

La diferencia es que --dig-holes analiza el archivo en busca de áreas que se pueden hacer dispersas (usando --offset y --length , si se proporciona, para indicar el rango en el archivo a analizar), mientras que --punch-holes usa --offset y --length para realmente poner a cero una parte de un archivo para crear un agujero.

Tenga en cuenta también el plural "cavar agujeros" frente al singular "perforar agujero".

Del manual, con respecto a --dig-holes :

Puedes pensar en esta opción como si hicieras un cp --sparse y luego cambiar el nombre del archivo de destino al original, sin necesidad de espacio adicional en el disco.


--dig-holes no cambia el contenido del archivo, como se determina cuando se lee el archivo:solo identifica series de ceros que se pueden reemplazar con agujeros.

--punch-hole usa el --offset y --length argumentos para perforar un agujero en un archivo, independientemente de lo que contenga el archivo en ese desplazamiento:funciona incluso si el archivo contiene ceros allí, pero el contenido del archivo cambia como resultado. Teniendo en cuenta su archivo de ejemplo, ejecutando fallocate --punch-hole --offset 2 --length 10 reemplazaría diez a caracteres con ceros, comenzando después del segundo.


Linux
  1. ¿Cuál es la diferencia entre InnoDB y MyISAM?

  2. ¿Cuál es la diferencia entre un contenedor de Linux y una imagen?

  3. ¿Cuál es la diferencia entre fsync y syncfs?

  4. ¿Cuál es la diferencia entre una llamada de biblioteca y una llamada de sistema en Linux?

  5. ¿Cuál es la diferencia entre unlink y rm?

¿Cuál es la diferencia entre los núcleos de macOS y Linux?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre Rsync y BTRFS en Linux?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?

¿Cuál es la diferencia entre Unix, Linux, BSD y GNU?