web-dev-qa-db-fra.com

Comment dupliquer un dossier exactement

J'essaie de copier un système de fichiers pour un appareil pour lequel je programme. Après tant de temps à essayer de comprendre pourquoi le système de fichiers que j'installais ne fonctionnait pas, j'ai découvert que cp n'avait pas fait le travail. J'ai utilisé du -s pour vérifier la taille du système de fichiers d'origine et celui avec lequel j'ai copié cp -r, car il s'avère qu'ils diffèrent d'environ 150 octets.

Quelque chose me dit que les liens symboliques ou une sorte d'objets du noyau ne sont pas copiés correctement.

Est-il possible de copier un dossier/système de fichiers exactement? Si oui, comment pourrais-je m'y prendre?

29
TopGunCoder

Une autre option populaire consiste à utiliser tar c source | (cd target && tar x ). Voir cet article linuxdevcenter.com.

3
damienfrancois

Essayez de le faire de manière simple:

cp -a src target

de man cp

    -a, --archive
           same as -dR --preserve=all

Il préserve les droits, les liens symboliques ...

58
Gilles Quenot

Ici, j'ai essayé tout le code de mon Linux. Semble Rsync proposé par @seanmcl comme étant le bon tandis que d'autres n'ont pas réussi à garder propriétaires et/ou certains fichiers spéciaux ou a = résultat refusé. Le code exact est:

$ Sudo rsync -aczvAXHS --progress /var/www/html /var/www/backup

N'oubliez pas d'utiliser uniquement le nom du répertoire et de ne pas mettre de barre oblique (/) ou un caractère générique (/*) à la fin de source et cible nom sinon les fichiers cachés juste en dessous de la source ne sont pas copiés.

6
Chetabahana

La façon la plus précise que je connaisse de copier des fichiers est avec cpio:

cd /path/to/source
find . -xdev -print0 | cpio -oa0V | (cd /path/to/target && cpio -imV)

Pas vraiment facile à utiliser, mais c'est très précis, en préservant les horodatages, les propriétaires, les autorisations, les fichiers spéciaux.

3
janos

Rsync est le meilleur moyen de copier un système de fichiers. Ce sont ne myriade d'arguments qui vous permettent de contrôler exactement ce qui est copié.

2
seanmcl