En raison d'un problème de disque dur, j'essaie de déplacer une partition d'un disque dur à un autre. Je suis les étapes suivantes http://www.ibm.com/developerworks/library/l-partplan.html article pour le faire. Dans la partie copie, je voudrais ignorer un sous-répertoire particulier. Comment puis-je y parvenir en gardant à l'esprit que, lors de la copie, je dois conserver mon groupe de propriétaires et l'horodatage. Il y a environ 700 Go de données qui doivent être copiées si je n'ignore pas un sous-répertoire particulier.
Réponses
Trop de publicités?Normalement, j'utilise cpio
comme suit,
cd source_dir; find . -depth | cpio -pdmv dest_dir
Et comme il s'agit d'un pipeline, vous pouvez placer un "filtre de soustraction" au milieu.
cd sourcedir; find . -depth | grep -v exclude_dir | cpio -pdmv dest_dir
ou vous pouvez le faire en plusieurs étapes,
cd source_dir; find . -depth > files.lst
gedit files.lst # (take out the offending directory and files and save back to files.lst)
cpio -pdmv dest_dir < files.lst
Bien sûr, je testerais d'abord sur quelque chose de plus petit, mais vous voyez l'idée.
Vous pourriez écrire un simple bash script avec une boucle pour ignorer le certain chemin que vous ne voulez pas copier et copier le reste. Une autre solution pourrait être d'utiliser des expressions régulières. Vous pouvez vous documenter sur les scripts bash ici : -> http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html Tutoriel Regex ici -> http://www.regular-expressions.info/
- Réponses précédentes
- Plus de réponses