GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra `fallocate --dig-holes` e `fallocate --punch-hole` in Linux?

In breve:

  • --dig-holes rende un file sparse senza modificarne il contenuto (come visto da un programma che lo legge).
  • --punch-hole crea un buco in un file, probabilmente modificando i dati esistenti.

La differenza è che --dig-holes analizza il file per le aree che possono essere rese sparse (usando --offset e --length , se fornito, per indicare l'intervallo nel file da analizzare), mentre --punch-holes utilizza --offset e --length effettivamente azzerare una parte di un file per creare un buco.

Nota anche il plurale "scavare buche" rispetto al singolare "punch hole".

Dal manuale, riguardante --dig-holes :

Puoi pensare a questa opzione come fare un cp --sparse e quindi rinominare il file di destinazione nell'originale, senza la necessità di ulteriore spazio su disco.


--dig-holes non modifica il contenuto del file, come determinato quando il file viene letto:identifica solo sequenze di zero che possono essere sostituite con buchi.

--punch-hole utilizza il --offset e --length argomenti per creare un buco in un file, indipendentemente da ciò che il file contiene a quell'offset:funziona anche se il file contiene numeri diversi da zero, ma il contenuto del file cambia di conseguenza. Considerando il tuo file di esempio, eseguendo fallocate --punch-hole --offset 2 --length 10 sostituirebbe dieci a caratteri con zeri, a partire dal secondo.


Linux
  1. Qual è la differenza tra individuare e trovare il comando in Linux

  2. Qual è la differenza tra env e set (su Mac OS X o Linux)?

  3. Qual è la differenza tra memoria buffer e cache in Linux?

  4. Qual è la differenza tra la scrittura su un file e una memoria mappata?

  5. Qual è la differenza tra ls e l?

Qual ​​è la differenza tra i kernel macOS e Linux

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Rsync e BTRFS in Linux?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra una chiamata di libreria e una chiamata di sistema in Linux?