J'ai des dizaines de dossiers que je dois compresser en fichiers zip individuels.
Si je sélectionne tous ces dossiers dans le Finder et que je "compresse les éléments [X]", j'obtiens un fichier zip contenant tous les dossiers, alors que je veux un fichier zip par dossier.
J'ai essayé de créer un flux de travail avec Automator en utilisant l'action "Créer une archive", mais cela se comporte de la même manière: la saisie de plusieurs fichiers / dossiers génère un seul fichier zip. Il n'y a aucun moyen de spécifier que l'action s'exécute sur chaque élément individuellement.
Fondamentalement, je cherche un moyen d'éviter d'exécuter fastidieusement "Compress" dans le Finder sur chaque dossier un par un. Existe-t-il un moyen d'automatiser cela?
popd
et corrigé une faute de frappe fatalefor i in $bn*.zip; do
, qui aurait dû l'êtrefor i in $bn *.zip; do
. Notez l'espace entre$bn
et*.zip
, il manquait et n'aurait pas dû l'être. Veuillez donc le mettre à jour dans votre implémentation, sinon il se mettra en marcheFile Name 2.zip
lorsque lebasename
aura un espace dedans.Réponses:
Voici un service Automator 1 qui devient disponible dans le Finder lorsque les dossiers sont sélectionnés et émule la commande Compress [n] Items des menus contextuels, sauf qu'il crée un fichier d'archive zip individuel pour chaque dossier sélectionné au nom du dossier sélectionné . Si le fichier Folder Name.zip existe déjà, un ( espace 2) est ajouté au nom de fichier , par exemple Folder Name 2.zip . Cela garantit un fichier d'archive zip existant
" 2"
n'est pas touché et le nom de fichier de l'archive zip sera automatiquement incrémenté si nécessaire.1 Dans macOS Mojave et versions ultérieures, un service Automator est appelé une action rapide . Il existe également d'autres différences mineures de nomenclature, mais elles devraient être plus évidentes lors de leur comparaison avec les flux de travail pré-macOS Mojave Automator.
Pour créer le service: 1
Ouvrez Automator et sélectionnez Service 1 ou Fichier > Nouveau > Service si Automator est déjà ouvert.
Set Service reçoit la sélection des dossiers et dans le Finder .
Ajoutez une action d' exécution de script shell , définissez Shell: sur / bin / bash et passez l'entrée: à en tant qu'arguments et ajoutez le code suivant :
Enregistrez le service sous: compresser les dossiers séparément
Pour utiliser le service:
Dans le Finder ou sur le bureau, sélectionnez plusieurs dossiers , puis cliquez avec le bouton droit et sélectionnez Compresser les dossiers séparément sous Services .
Ou après avoir sélectionné les dossiers cibles , vous pouvez également cliquer sur Finder > Services > Compresser les dossiers séparément dans la barre de menus .
Voilà, un moyen de compresser plusieurs dossiers séparément et simultanément à la fois dans des archives zip individuelles tout en émulant la façon dont le Finder crée un fichier d'archive zip. Cela signifie que l'archive zip contient des fourchettes de ressources préservées et des métadonnées HFS dans le sous-répertoire __MACOSX et incorpore uniquement la source du nom du répertoire parent dans l' archive de destination , pas le nom de chemin complet comme lors de l'utilisation
zip
(sans-j
) pour créer l'archive.Image des dossiers compressés séparément
la source
Il existe une solution alternative intégrée si vous ne souhaitez pas utiliser Automator et que vous pouvez modifier les paramètres de l'utilitaire d'archivage.
la source
/System/Library/CoreServices/Applications/
(vous pouvez appuyer sur Cmd-Shift-G lorsque la boîte de dialogue de sélection de fichier est ouverte pour coller ce chemin pour une navigation rapide)