1 votes

Aide à la création de fichiers zip contenant 50 fichiers chacun

J'ai un dossier contenant 7000 images qui doit être compressé en fichiers zip contenant seulement 50 fichiers chacun.

Y a-t-il un moyen de le faire automatiquement ? N'importe quel script, flux de travail Automator, batch quoi que ce soit serait utile.

Je ne suis pas très expérimenté dans l'utilisation de l'un ou l'autre, alors soyez précis.

J'utilise OS X Yosemite.

1voto

brofield Points 1164

Voici un script BASH script.

Hypothèses : Toutes vos photos sont dans un dossier, et il n'y a rien d'autre dans ce dossier.

#!/bin/bash
zip_count=0
files_zipped=0
folder_number=1
div=50
numfiles=(*)
numfiles=${#numfiles[@]}

mkdir zips

for file in *
do

  file_list="$file_list \"$file\""
  let "zip_count=zip_count+1"
  let "files_zipped=files_zipped+1"

  if [ "$files_zipped" -eq "$numfiles" ]; then
    echo "Final ZIP..."
    echo $file_list | xargs zip -9 zips/$folder_number.zip
  fi

  if [ "$zip_count" -eq "$div" ]; then
    echo "Next Zip..."
    echo $file_list | xargs zip zips/$folder_number.zip
    let "folder_number=folder_number+1"
    zip_count=0
    file_list=""
  fi

done

Vous pouvez le télécharger ici

Une fois que vous l'avez téléchargé :

  1. Ouvrez Terminal.app et allez dans le répertoire où se trouvent vos photos, par ex. cd /path/to/photos
  2. Exécutez la commande bash ~/Downloads/zip50.sh (en supposant que vous ayez téléchargé le script dans votre dossier de téléchargements).
  3. Un nouveau dossier appelé "zips" sera créé dans le dossier contenant vos photos.

0 votes

J'ai testé votre script et il semble fonctionner, bien que vous pourriez vouloir exécuter votre script à travers http://www.shellcheck.net/ et voir si l'un des avertissements mérite d'être pris en compte.

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