Copia la struttura dei file preservando i collegamenti


1

Ho una directory piena di backup incrementali (~ 20 GB) che ho bisogno di copiare (o spostare) da una partizione all'altra. Questa directory contiene istantanee giornaliere che sono state prodotte utilizzando cp -al per creare collegamenti simbolici per duplicare file anziché copie.

Ho bisogno di copiare questa struttura così com'è, preservando i collegamenti all'interno, ma quando eseguo un cp -r sembrava che i file venissero creati piuttosto che i collegamenti (presumo questo perché la copia utilizza più spazio libero del disco rispetto all'originale dopo che una piccola parte di esso è stata copiata).

Come posso copiare questa directory su un altro disco, preservando la struttura dei collegamenti? E come posso sapere che è stato copiato come link? (sembra difficile da verificare poiché include la dimensione del file indipendentemente)

Risposte:


1

Uso rsync. Dalla sua manpage:

          rsync -avz foo:src/bar /data/tmp

   This  would  recursively transfer all files from the directory src/bar on the machine foo into the /data/tmp/bar directory on the local machine. The files are transferred in "archive" mode, which ensures that sym‐
   bolic links, devices, attributes, permissions, ownerships, etc. are preserved in the transfer.  Additionally, compression will be used to reduce the size of data portions of the transfer.

Per quello che vale, du può seguire i collegamenti simbolici o no:

   -L, --dereference
          dereference all symbolic links

   -P, --no-dereference
          don't follow any symbolic links (this is the default)

Ho preso in considerazione rsync, ma ero preoccupato di conservare il collegamento al file originale originale invece della copia del file originale (se questo ha senso!). Consiglio utile su du
andrewmabbott

2

tar potrebbe essere utile, ad es.

tar cf - . | (cd /otherdirectory; tar xvf -)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.