Voici un Automator Service 1 qui devient disponible en Finder quand Dossiers sont sélectionnés et émule le site Menus contextuels Compresser [n] éléments commande sauf il crée un fichier d'archive zip individuel pour chaque sélection Dossier dans le nom de la sélection Dossier . Si le Nom du dossier.zip existe déjà, alors un " 2"
( espace 2) est annexé à la nom de fichier par exemple Nom du dossier 2.zip . Cela permet de garantir qu'une fichier d'archive zip n'est pas touché et le nom de fichier de l'archive zip sera automatiquement incrémenté si nécessaire.
<sup>1 </sup>Sur <strong>MacOS Mojave </strong>et, plus tard, un <strong>Automator </strong><em>Service </em>est appelé <em>Action rapide </em>. Il existe également d'autres différences de nomenclature mineures, mais elles devraient être plus évidentes lorsqu'on les compare aux flux de travail Automator antérieurs à MacOS Mojave.
Pour créer le service : 1
-
Ouvrir Automator et sélectionnez Service 1 ou Fichier > Nouveau > Service Si Automator est déjà ouvert.
-
Définir Le service reçoit sélectionné à dossiers y sur à Finder .
-
Ajouter un Exécuter le Shell script Action , réglage La coquille : à /bin/bash y Passez l'entrée : à comme arguments et ajoutez ce qui suit code :
for f in "$@"; do
dn="$(dirname "$f")"
bn="$(basename "$f")"
cd "$dn" || exit
if [[ ! -e "$bn.zip" ]]; then
ditto -c -k --sequesterRsrc --keepParent "$f" "$bn.zip"
else
n=2
for i in $bn *.zip; do
if [[ "$bn $n.zip" == "$i" ]]; then
n="$(( n + 1 ))"
fi
done
ditto -c -k --sequesterRsrc --keepParent "$f" "$bn $n.zip"
fi
done
afplay /System/Library/Sounds/Purr.aiff
-
Sauvegarder le Service comme : Compresser les dossiers séparément
Pour utiliser le service :
Sur Finder ou sur le Bureau choisir plusieurs Dossiers entonces Cliquez à droite sur et sélectionnez Compresser les dossiers séparément de dessous Services .
Ou après avoir sélectionné la cible Dossiers vous pouvez également cliquer sur Finder > Services > Compresser les dossiers séparément de la barre de menu .
Voilà, un moyen de compresser plusieurs dossiers séparément et simultanément en une seule 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 les fourches de ressources préservées et les méta-données HFS dans le sous-répertoire __MACOSX et ne contient que le nom du répertoire parent. source sur destination-archive et non le chemin d'accès complet comme dans le cas de l'utilisation de l'option zip
(sans -j
) pour créer l'archive.
Image de Compresser les dossiers séparément
1 votes
J'ai mis à jour ma réponse pour améliorer le code utilisé pour incrémenter le nom de fichier de l'archive zip afin qu'il émule la façon dont la commande Compress [n] Items du menu contextuel du Finder incrémente un nom de fichier.
0 votes
Désolé, j'ai mis à jour le code une fois de plus pour enlever l'inutile
popd
et corrigé une faute de frappe fatale dansfor i in $bn*.zip; do
qui aurait dû êtrefor i in $bn *.zip; do
. Notez l'espace entre$bn
y*.zip
il était absent et n'aurait pas dû l'être. Donc, s'il vous plaît, mettez-le à jour dans votre mise en œuvre, sinon cela marche surFile Name 2.zip
lorsque lebasename
a un espace dans celui-ci.