Michele Liberi software

versione 1.04, giugno 2026

Michele Liberi
mail: mliberi@gmail.com
cell: +393485211456
telegram: @MicheleLiberi

liberix

c7comp, comparatore di filetree

Il comando c7comp è un componente fondamentale del programma comm7.

Scritto in linguaggio C per motivi di efficienza, c7comp permette di confrontare due filetree.

c7comp riceve in input due files di testo (che possono essere generati dal comando ftime) e che rappresentano le due strutture da confrontare.

Ogni riga di ognuno dei due file contiene i seguenti campi:

I due file di input devono contenere lo stesso numero di righe, ed il nome del file deve essere identico tra righe corrispondenti. Una eventuale mancanza di corrispondenza del campo pathname comporta un'immediata chiusura del programma.

Dall'esame comparativo dei due file di input c7comp (diciamo A e B), genera sette file di output:

  1. lista degli oggetti identici (dati e metadati)
  2. lista degli oggetti diversi
  3. lista degli oggetti diversi più nuovi in A
  4. lista degli oggetti diversi più nuovi in B
  5. lista degli oggetti con diversi metadati
  6. lista degli oggetti con diversi metadati più nuovi in A
  7. lista degli oggetti con diversi metadati più nuovi in B

La distinzione tra dati e metadati è importante perché la sincronizzazione dei metadati è molto più veloce ed efficiente della sincronizzazione dei dati.

Il confronto dei due oggetti corrispondenti (stesso pathname) segue logiche diverse in base al tipo di oggetto, e in base alle opzioni impostate:

filetype diversi
Come primo criterio di confronto c7comp usa il filetype, se non coincide gli oggetti sono considerati diversi.
file regolari
Due file regolari sono considerati: Ci sono importanti eccezioni alla regola:
directory
Per le directory il confronto avviene solo a livello di metadati, con le stesse eccezioni di cui sopra. Per il confronto dei timestamp si usa il last status change time e non il last modification time.
link simbolici
Per i link simbolici i metadati non sono importanti e non possono mai differire. Due link si considerano identici se puntano allo stesso oggetto. Per il confronto dei timestamp si usa il last status change time e non il last modification time.

Per ulteriori informazioni sulla sintassi di attivazione e sulle opzioni disponibili lanciare il comando con l'opzione -h.

(c) M. Liberi, last updated: 2026-06-16