2 votes

Zipper automatiquement le contenu de chaque sous-dossier d'un dossier dans Mac

J'ai la structure de dossier/fichier suivante

parent folder
--subfolder1
  -sub-subfolder
  -file1
  -file2
--subfolder2
  -sub-subfolder
  -file1
  -file2
...

J'en ai envie :

  • créer des fichiers zip à partir du contenu des sous-dossiers, c'est-à-dire, fichier1, fichier2 et le sous-sous-dossier seront zippés, mais pas le sous-dossier qui les contient.

  • nommez chaque fichier zip avec le nom du dossier, comme sous-dossier1.zip, sous-dossier2.zip...

Je préfère que les fichiers zip restent dans le sous-dossier correspondant :

parent folder
--subfolder1
  -sub-subfolder
  -file1
  -file2
  -subfolder1.zip
--subfolder2
  -sub-subfolder
  -file1
  -file2
  -subfolder2.zip
...

J'espère que cela sera possible avec Automator, mais je n'ai pas réussi jusqu'à présent.

Mes recherches ont abouti à des solutions qui zippent chaque dossier individuellement avec le dossier lui-même, ce qui, dans ce cas, ne m'est pas utile. J'ai besoin de la contenu des dossiers à zipper.

Des idées ?

5voto

nohillside Points 82672

Je ne suis pas sûr qu'il s'agisse d'Automator, mais vous pouvez facilement le faire dans Terminal.

find "parent folder" -type d -depth 1 -execdir sh -c 'cd "$1" && zip -r "$1" .' _ '{}' \;
  • find "parent folder" -type d -depth 1 liste tous les sous-répertoires du "dossier parent" (il suffit de l'exécuter pour voir le résultat)
  • -execdir exécute la partie jusqu'au \; pour chaque sous-répertoire trouvé
  • sh -c 'cd "$1" && zip -r "$1" .' _ '{}' lance un sous-shell pour entrer dans le répertoire à empaqueter, puis zipper le contenu qui s'y trouve. Les {} contient le nom du sous-répertoire et est la valeur $1 sera fixée à l'intérieur du sous-shell, _ est syntaxiquement nécessaire, mais son contenu est ignoré.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X