Comment puis-je archiver un répertoire en Perl comme le goudron n'en UNIX?
Je veux archiver un répertoire (je ne sais pas si je peux appeler "je veux tar un répertoire"). Je veux préserver les autorisations d'accès à l'autre bout quand je l'onu-tar. Je devrais m'attaquer à ce problème en perl.
Merci pour la réponse, mais pourquoi je vous demande de le faire en Perl, je veux qu'il soit indépendant des plates-formes. Je veux transférer un gros fichier de plusieurs machines. Ces machines peuvent être de n'importe quelle plate-forme. Je devrais être capable de décompresser ce fichier tar correctement droite? Donc, je veux écrire mon propre goudron et décompresser des programmes. Pourquoi je suis à l'aide de Perl est de le rendre indépendant de la plateforme. Donc je ne peux pas utiliser la commande tar par l'ouverture de la coquille au niveau du scénario et des trucs comme ça. Le Archive::Tar module ne traite qu'avec les goudronnée fichier, mais il n'a pas d'option pour archiver des fichiers.
Oui, “à goudron un répertoire” est une expression courante.
Je ne comprends pas votre problème avec l'Archive::Tar. Vous pouvez créer des archives comme ceci: Archive::Tar->create_archive( 'out.tgz', COMPRESSION_GZIP, @filelist); Qu'en zip? C'est sur linux, windows et mac.
Vous aurez besoin d'installer IO::Zlib (compatible core dans 5.10.0) pour utiliser la compression GZIP. Ou vous pouvez créer des archives zip avec Archive::Zip (également compatible et de base dans 5.10.0). le goudron dans le Perl est fourni avec l'Archive::Tar. Il est appelé ptar.
OriginalL'auteur Ram | 2009-02-05
Vous devez vous connecter pour publier un commentaire.
Voici un exemple simple:
OriginalL'auteur JDrago
Vous voudrez peut-être regarder à Archive::Tar sur le CPAN. (Je suis juste deviner, je n'ai jamais utilisé moi-même.) Pourquoi insistez-vous sur le faire en Perl?
Archive tar est disponible avec ActivePerl.
OriginalL'auteur zoul
Deux paramètres; le nom du fichier tar compressé et le nom du répertoire que vous voulez dans le fichier tar.
par exemple
OriginalL'auteur Colin
Vous pouvez utiliser l'Archive::Tar module Perl, ou vous pouvez exécuter le goudron directement.
Si vous exécutez avec l'option de l'utilisation de tar à partir de la ligne de commande, utilisez l'option-p pour préserver les permissions.
Si vous êtes littéralement tout simplement à la recherche pour le goudron du répertoire, je venais tout juste de lancer la commande directement, vous n'avez pas besoin d'utiliser Perl. Si vous avez besoin de faire un peu de fantaisie traitement par la suite, peut-être que vous devriez. Il dépend.
OriginalL'auteur Philip Reynolds
Il me semble rsync pourrait être une meilleure solution pour ce faire, mais vous n'avez pas beaucoup parlé de ce que d'autres contraintes que vous avez.
OriginalL'auteur brian d foy