Comment puis-je copier un répertoire de manière récursive et filtrer les noms de fichiers en Perl?
Comment puis-je copier un répertoire, y compris les sous répertoires à exclure des fichiers ou des répertoires qui correspondent à un certain regex sur un système Windows?
source d'informationauteur Manu
Vous devez vous connecter pour publier un commentaire.
Je ferais quelque chose comme ceci:
Une autre option est de Fichier::Xcopy. Comme le nom le dit, il est plus ou moins émule windows commande xcopy, y compris le filtrage et options récursive.
À partir de la documentation:
Si vous arrive d'être sur un Unix-like OS et d'avoir accès à
rsync (1)
vous devez l'utiliser (par exemple par le biais desystem()
).Perl File::Copy est un peu cassé (il ne copie pas les autorisations sur les systèmes Unix, par exemple), donc si vous ne voulez pas utiliser vos outils système, regardez le CPAN. Peut-être File::Copy::Récursive pourrait être utile, mais je ne vois pas exclure les options. J'espère que quelqu'un d'autre a une meilleure idée.
Je ne sais pas comment faire une exclusion avec une copie, mais vous pouvez travailler sur quelque chose le long des lignes de:
Une réponse classique utiliser '
cpio -p
':Le "
cpio
de commande de traite de la copie réelle, y compris l'autorisation de préservation. Le truc de "cd $SOURCE_DIR; find . ...
" traite avec la suppression de la partie de tête de la source chemin de la noms de. Le seul problème avec l'invocation de 'find
' est qu'il ne suit pas les liens symboliques; vous devez ajouter '-follow
" si c'est ce que vous voulez.