# Création de dossiers automatiques



## Xavb22 (1 Mai 2017)

Bonjour à tous

Je voudrais savoir si l'un/l'une d'entre vous pourrait me donner la démarche pour automatisé la création de dossiers. 

Je m'explique. J'ai mes dossiers photos classés par date (20170501-titre)

Dans ce dossier je souhaite pouvoir créer automatiquement 
Le dossier--> originales
Le dossier--> travaillées
Le dossier --> internet
Le dossier --> sélectionnées

En fait c'est 4 dossiers seront systématiquement présent dans TOUS mes dossiers contenant mes photos classés. 

Donc je souhaite une manipulation très simple afin d'automatiser cette tâche 

J'espère que je suis clair et que vous pourrez répondre à cette demande. 

Merci

Xavier


----------



## bompi (1 Mai 2017)

Si je comprends bien, tu as, dans un dossier donné, des sous-dossiers dont le nom a la forme "YYYYMMDD - Titre".
Dans chacun de ces sous-dossiers se trouvent des photos et tu voudrais créer pour chacun de ces sous-dossiers quatre sous-dossiers ("originales", "travaillées", "Internet", "sélectionnées") et (je suppose) déplacer les photos dans le sous-dossier "originales".

C'est ça ?


----------



## Xavb22 (2 Mai 2017)

Salut bompi merci d'avoir pris le temps de me répondre.

En fait voici une copie écran pour mieux expliquer ma demande







En fait je voudrais que dans chaque dossier, sur une année j'ai environ 1000 dossiers, en une seule manipulation il soit créé les sous-dossiers et que dans le sous-dossier originales les RAW soient transférés.

Dans l'exemple :

Le dossier 20170502-FORUM est créé à l'ancienne. Dans ce dossier il y a XXX images avec comme extension .CR2

Avec le script ou autres je voudrais automatiser ce que je fais aujourd'hui mano à mano pour chaque dossier, la création des sous-dossiers et que dans le sous-dossier originales soient transférés les .CR2.

C'est pas très clair hein ?

Merci


----------



## Locke (2 Mai 2017)

@Xavb22
J'ai modifié pour toi, mais lorsque tu réponds, pour insérer une photo fais un clic sur Transférer un fichier. Ce sera plus simple puisque l'on peut insérer une photo depuis son Mac.


----------



## bompi (2 Mai 2017)

Bien. Mon Mac est éteint donc j'ai fait ça sous Linux (je vais le tester sur mon MBP après).

a) j'ai créé un petit script qui permet, pour un dossier passé en paramètre, d'y créer les sous-dossiers "originales", "internet" etc. et d'en déplacer les fichiers avec l'extension CR2 dans son nouveau sous-dossier "originales".

b) ensuite j'ai concocté une commande find qui permet de rechercher les dossiers "YYYYMMDD-*" et d'appliquer le script à chacun des dossiers trouvés.


----------



## bompi (2 Mai 2017)

a) le script :


> _#!/bin/bash_
> 
> _function fMD () {_
> _    [ ! -d "$1" ] && /bin/mkdir "$1"_
> ...



Le plus simple est

de créer (éventuellement) le dossier "/usr/local/bin"
* sudo mkdir -p "/usr/local/bin"*
si le dossier existe, la commande râlera mais ce n'est pas grave

d'enregistrer le script ci-dessus dans un fichier ; je l'ai appelé "createPictDir.sh"
de recopier ce fichier dans "/usr/local/bin"
de lui donner les attributs suffisants pour l'exécuter :
* sudo chmod a+x "/usr/local/bin/createPictDir.sh"*
Ce script prend en paramètre le nom d'un dossier et va créer, s'ils n'existent pas, les sous-dossiers que tu souhaites, puis copier les fichiers CR2 (raw Canon ?) dans le sous-dossier "originales"


----------



## bompi (2 Mai 2017)

b) La commande :


```
find . -type d -regex ".*/[0-9]\{8\}-[^/]*" -print  -exec /usr/local/bin/createPictDir.sh {} \;
```

Cette commande va :

à partir de l'endroit où tu te trouves (le point)
rechercher les dossiers (*-type d*)
dont le nom commence par 8 chiffres, suivis d'un tiret puis de caractères quelconques (*-regex ".*/[0-9]\{8\}-[^/]*"*)
et, pour chaque dossier trouvé, va afficher son nom (*-print*)
et appliquer le script précédent
(*-exec /usr/local/bin/createPictDir.sh {} \;*)


----------



## bompi (2 Mai 2017)

Tu l'auras compris, tout ça ce fait dans un onglet quelconque de Terminal.
Pour te déplacer dans le bon dossier de départ, tu utilises la commande cd.

Cependant, tu peux parfaitement utiliser Automator pour rechercher les dossiers qui t'intéressent et, pour chacun lui appliquer le script, car Automator a un objet pour exécuter les commandes et scripts en mode texte.

Idem avec AppleScript.


----------



## bompi (2 Mai 2017)

Je viens de tester (et faire une légère modification à la commande) sur mon MBP et cela me semble fonctionner comme attendu [le MBP est toujours sur Yosemite].


----------



## bompi (2 Mai 2017)

Je viens de faire un essai avec Automator pour éviter d'avoir à ouvrir Terminal à chaque fois.
C'est assez simple à réaliser.
Il faut simplement faire attention à transmettre au script le dossier sélectionné sous forme d'arguments (*Pass input* : _as arguments_)


----------



## Xavb22 (2 Mai 2017)

Locke a dit:


> @Xavb22
> J'ai modifié pour toi, mais lorsque tu réponds, pour insérer une photo fais un clic sur Transférer un fichier. Ce sera plus simple puisque l'on peut insérer une photo depuis son Mac.



Merci désolé, je ferai attention la prochaine fois


----------



## Locke (2 Mai 2017)

Xavb22 a dit:


> Merci désolé, je ferai attention la prochaine fois


Il n'y aucun problème, mais c'est surtout pour toi pour te faciliter la vie, car mettre un lien entre des balises ne facilite pas la tâche pour la voir.


----------



## Xavb22 (2 Mai 2017)

bompi, un très très grand merci à toi pour cette aide.

Excellent.

Merci beaucoup


----------

