Je suis confronté à un problème à priori tout simple mais en fait pas tant que ça. Je suis sous MacOS 10.5 et j’ai des centaines de dossiers à « convertir » en fichier zip.
En gros « un dossier = un fichier zip avec le même nom ». Mais la seule solution proposée par défaut par MacOS est « clic droit → compresser le dossier », et manuellement j’en ai donc pour très très longtemps…
J’ai rapidement cherché un utilitaire de zip qui pourrait me faire ça mais j’ai pas trouvé. J’ai également essayé d’automatiser le processus avec Automator mais je ne l’ai jamais utilisé et je ne pige pas bien comment ça fonctionne.
for i in ls -1; do
$debug ditto -ck --sequesterRsrc --keepParent $i $i.zip
done[/code]
j’ai trouvé la commande de compression via le net, j’ai pas mon mac ici donc pas moyen de tester. si tout va bien, il doit t’afficher ditto -ck --sequesterRsrc --keepParent .zip pour chaque dossier de ton repertoire
si ca te semble bon, tu remplace debug=echo par debug=
je te deconseille fortement de lancer ton .sh via un double clic (meme pas sur que ca marche par defaut): met le dans ton dossier, lance un terminal et navigue jusque la
si ditto marche pas, regarde pour la commande zip (zip --help, ou man zip si le man est installé) pour une commande equivalente, $i representant le nom du dossier, tu devrais t en sortir (oublie pas de laisser debug=echo pendant tes test)
et si tu peux: backup tes dossiers avant
(et si tu n’as jamais utilisé de script shell: tu fais un fichier texte dans ton dossier, tu l’ouvre avec textedit, tu copie/colle le code au dessus, tu sauvegarde en .sh, terminal, tu va jusqu au dossier en question, chmod 755 .sh, puis ./.sh )
Merci, j’ai quelques notions sous Unix donc je devrai pouvoir me débrouiller avec ta solution. Par contre comme toi j’ai pas mon iMac sous la main donc je testerai ça ce soir.
En attendant si quelqu’un d’autre a une solution plus « user-friendly » je dis pas non
Bon ça marche presque avec la commande zip, mais j’ai un problème avec les espaces.
Voici mon script :
[code]#!/bin/bash
debug=echo
for i in ls -1; do
$debug zip -b "$i"
done[/code]
Et un bout de ce que ça donne :
[quote]zip -b Chapter
zip -b 23/
zip -b Chapter
zip -b 24/
zip -b Chapter
zip -b 25/
zip -b Chapter
zip -b 26/
zip -b Chapter
zip -b 27/[/quote]
Comme vous le voyez les dossiers avec un espace, du genre “Chapter 22” ne sont pas bien pris en compte car ils sont interprétés comme un dossier “Chapter” et un dossier “22”, pourtant j’ai bien mis les guillemets. Que faire ? (et l’option proposée par fser ne fonctionne pas, ls ne connait pas cette option sous MacOs)
Désolé pour le ton hautain, c’était juste pour faire le vieux con, étant sans doute le plus jeune de ce thread
La solution de LodeRunner ne fonctionne pas?
En fait j’ai du mal à comprendre la « philosophie » d’automator, j’ai fait quelques essais mais je sais pas trop pourquoi je m’en sors pas. Si quelqu’un pouvait m’expliquer rapidement avec cet exemple concret ce serait parfait