Domanda

Ho un paio di file identici memorizzati in più di un posto sul mio hard disk. Immagino che posso risparmiare un sacco di spazio su disco rigido-linking loro di puntare allo stesso file. Sono un po 'preoccupato per gli effetti collaterali possibilmente disastrose.

Credo che non influenza i permessi, come quelli sono memorizzati nelle rispettive directory, proprio come il nome del file, giusto? (Aggiornamento: A quanto pare, ho indovinato sbagliato, i permessi sono condivise, come Carl dimostra nella sua risposta)

La preoccupazione più grande è modifiche a un file inavvertitamente anche cambiando gli altri file. File di sola lettura devono essere sicuri poi. E i file che possono essere modificate sono anche bene, se invece di aggiornare all'interno del file esistente, un nuovo file viene scritto. Credo che la maggior parte delle applicazioni funzionano in questo modo, ma probabilmente non tutti.

C'è qualcos'altro da considerare?

Sono su OS X / HFS +.

È stato utile?

Soluzione

Non utilizzare collegamenti fisici, se si desidera che le modifiche a un file non devono essere riflesse in altri file. Questo è il punto centrale di hard link - più voci di directory per il stesso file (stessi blocchi su disco). Cambiare i permessi su uno dei nomi di un hard link li cambia su entrambi:

$ touch file
$ ln file link
$ ls -l
total 0
-rw-r--r--  2 owner group  0 Nov 11 16:44 file
-rw-r--r--  2 owner group  0 Nov 11 16:44 link
$ chmod 444 file
$ ls -l
total 0
-r--r--r--  2 owner group  0 Nov 11 16:44 file
-r--r--r--  2 owner group  0 Nov 11 16:44 link

Dalla pagina ln man:

  

Un hard link a un file è indistinguibile dalla voce di directory originale; eventuali modifiche ad un file sono effettivamente indipendente dal nome utilizzato per fare riferimento al file.

Altri suggerimenti

ho scritto un piccolo script di fare proprio questo. Sarei preoccupato per le autorizzazioni solo se il backup è stato Spanning più utenti o file di sistema.

Ho avuto un mucchio di vecchi backup su CD e DVD, molti dei quali avevano un sacco di dati ridondanti su di loro. Invece di vagliare tutto ciò che informazioni ed eliminare i duplicati, ho preso la via Time Machine e fatto collegamenti fisici tra tutti i file corrispondenti (contenuti veramente di corrispondenza, ho preso un checksum SHA1 di tutti).

Ora tutti i miei volumi di backup apparire proprio come farebbero altrimenti e la maggior parte dei file ridondanti sono storia. L'unico intoppo è che un sacco di file multimediali metadati nel contenuto del file in modo che ogni versione è leggermente diversa. Vedere questo articolo per il codice Python. Nessuna garanzia !!!

Assicurati di fare mdimport your_backup_dir/ seguito: Spotlight e Finder ottiene un po 'agitata quando si fanno manipolazioni di dati enormi. Ho deduplicati mia cartella di backup 240 GB in questo modo e ci sono voluti circa 45 minuti.

Si noti inoltre, la maggior parte delle applicazioni per OSX si romperà il tuo hard link e salvare in un nuovo inode, la maggior parte UNIX'y apps probabilmente manterrà i collegamenti fissi (ad eccezione di Emacs, ho sentito).

link hard non sono generalmente una buona pratica. Plain Old morbide link simbolici / (ln -s) dovrebbero servire altrettanto bene.

Se il vostro obiettivo primario è quello di "deduplicazione backup di Time Machine" come si parla in uno dei commenti, poi un'altra opzione che consente di evitare alcune delle vostre preoccupazioni sarebbe quello di eliminare i gonzi da Time Machine utilizzando il preferenze di Time Machine . È possibile escludere a livello di directory o file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top