Script shell de tri automatique de répertoire
Bonjour,
Je gère mes caméras de surveillance avec
Exemple : (on est le 16/05/2022)
....devient avec exécution du script (**) :
dans 3 jours, je serais dans la situation suivante:
(*) j'aurais besoin (suis novice complet) d'un script qui déplace automatiquement les répertoires des jours (2022-05-xx*) vers un répertoire du mois courant , créé automatiquement si absent:
....deviendrait:
Voici le script qui trie les vidéos du jour dans un répertoire du jour :
Je ne vois pas comment adapter ce script pour mon besoin spécifique ici (*)
Merci de votre aide
alansan2019
Je gère mes caméras de surveillance avec
motion.
motionenregistre les vidéos à la racine dans
/motion/. J'ai déjà un script qui déplace les vidéos motion du jour dans un répertoire nommé à la date du jour, créé automatiquement si ce dernier n'existe pas encore...
Exemple : (on est le 16/05/2022)
/motion/
vid1.mp4
vid2.mp4 ...etc
....devient avec exécution du script (**) :
/motion/
2022-05-16/
vid1.mp4
vid2.mp4 ....etc
dans 3 jours, je serais dans la situation suivante:
/motion/
2022-05-16/*.mp4
2022-05-17/*.mp4
2022-05-18 .... etc
(*) j'aurais besoin (suis novice complet) d'un script qui déplace automatiquement les répertoires des jours (2022-05-xx*) vers un répertoire du mois courant , créé automatiquement si absent:
/motion/
2022-05-16
2022-05-17
2022-05-18 .... etc
....deviendrait:
/motion/
2022-05/
2022-05-16
2022-05-17
2022-05-18 .... etc
2022-06/
2022-06-05
2022-06-06
2022-06-07 .... etc
Voici le script qui trie les vidéos du jour dans un répertoire du jour :
#!/bin/bash cd /home/xxx/motion/ pwd=`pwd` #list all files,cut date, remove duplicate, already sorted by ls. dates=`ls -l --time-style=long-iso|grep -e '^-.*' | awk '{print $6}' | uniq` #for loop to find all files modified on each unique date and copy them to your pwd for date in $dates; do if [ ! -d "$date" ]; then mkdir "$date" fi #find command will find all files modified at particular dates and ignore hidden files. forward_date=`date -d "$date + 1 day" +%F` find "$pwd" -maxdepth 1 -not -path '*/\.*' -type f -newermt "$date" ! -newermt "$forward_date" -exec mv -f {} "$pwd/$date" \; done
Je ne vois pas comment adapter ce script pour mon besoin spécifique ici (*)
Merci de votre aide
alansan2019
A voir également:
- Script shell de tri automatique de répertoire
- Logiciel de sauvegarde automatique gratuit - Guide
- Classic shell - Télécharger - Personnalisation
- Réponse automatique thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment faire un tri personnalisé sur excel - Guide
1 réponse
Bonjour,
Il faut l13-15 extraire l'année, le mois et le jour, puis créer en conséquence le sous dossier.
Ensuite il faut adapter l20 ta commande
Bonne chance
Il faut l13-15 extraire l'année, le mois et le jour, puis créer en conséquence le sous dossier.
yyyy=$(echo $date | cut -d"-" -f1) mm=$(echo $date | cut -d"-" -f2) dd=$(echo $date | cut -d"-" -f3) echo "yyyy='$yyyy'" echo "mm='$mm" echo "dd='$dd'" dir="$yyyy-$mm/$yyyy-$mm-$dd" echo "dir='$dir''" mkdir -p "$dir"
Ensuite il faut adapter l20 ta commande
mvpour déplacer ton fichier vers
"$dir"au lieu de
"$pwd/$date".
Bonne chance