8768 sujets

Développement web côté serveur, CMS

Hello,

j'essaye de compresser un tar.gz en tgz.

exec("tar cvfz " . $dest . " " . $source);


c'est la commande.
mais quand je fais un

exec("tar cvfz mondossier/monfichier.tar.gz mondossier/mondossier2/mondossier3/);

le problème est que dans le .tgz, cela me créer également le chemin.
Je me retrouve avec dans mon .tgz -> mondossier/mondossier2/mondossier3/, alors que je veux uniquement le "contenu" de mon dossier 3.
Quelqu'un a une idée ?
LE plus simple à mon avis est de changer temporairement de dossier courant. Voir la fonction chdir.
Hello,
Merci pour vos réponse !

@niuxe
phar::compress() marche oui, et encore. j'ai du utiliser un builderfromdirectory. (phar compress m'a servi pour compresser mon .zip en .tar.gz, mais je souhaite faire un .tgz).

@mathieu1004
Cela me fait pareil, dans mon .tgz je me retrouve donc avec un dossier home/mondossier/ etc......

@QuentinC
Je sais pas si c'est le plus simple, parce que du coup, j'ai juste utilisé la commande mv pour "renommer" en .tgz au lieu de .tar.gz, cela marche très bien, je sais c'est pas très propre...

Merci à vous. du coup comme je disais je suis passé par un "renommage" avec la commande mv puis je supprime le .tar.gz pour n'avoir que le .tgz (rm) .
Et avec l'option -C ?

exec("tar cvfz mondossier/monfichier.tar.gz mondossier/mondossier2/mondossier3/ -C mondossier/mondossier2/ mondossier3);


ou peut être
exec("tar cvfz mondossier/monfichier.tar.gz mondossier/mondossier2/mondossier3/ -C mondossier/mondossier2/mondossier3/ .);
Merci mathieu1004, j'avais essayé également avec le -C et le "." à la fin.. cela ne changer pas. Merci à toi