Je fais des séquences de laps de temps qui durent plusieurs semaines et que je veux supprimer des photos prises pendant la nuit (c’est-à-dire entre 22h45 et 17h00 dans ce cas), comment puis-je le faire facilement?
J'ai trouvé les solutions partielles suivantes:
- En utilisant
find -newerXY
et spécifiquement-newermt
serait possible mais nécessite que je passe en boucle sur toutes les dates, - En utilisant
stat
pour interroger le mtime, mais je ne sais pas comment comparer facilement les temps en bash.
Je le fais maintenant manuellement, mais je suis sûr qu'il doit y avoir une solution plus élégante. Des idées? Merci! :)
foo 23:bar
) dans son nom de fichier alors il sera déplacé indépendamment de son heure. Un autre problème: un fichier correspondant dont le nom de fichier contient une nouvelle ligne ne sera pas déplacé, je pense.Cette ligne semi-simple imprimera les fichiers "nocturnes":
Sous-lignes expliquées:
bash
est exécuté; ça va faire l'arithmétique.HH:MM
.HH:MM
à une valeur en minutes après minuit.bash
; à l'intérieur, ils sont appelés$0
,$1
,$2
.Quelques remarques:
-exec
peut servir de test dansfind
invocation. C'est à peine évident, pourtant très puissant. Dans ce cas, le test est vrai lorsque la dernière partie de l'intérieurbash
ligne de commande (i.e.test
) renvoie true (c'est-à-dire que son statut de sortie est0
).$((…))
) analyse01
ou alors comme un nombre octal,08
et09
sont des nombres octaux invalides. C'est pourquoi nous devons utiliser10#
faire en sorte que tous les chiffres extraits destat
les résultats sont interprétés comme décimaux.-lt
et-gt
danstest
. Utilisation-le
et / ou-ge
si cela vous convient mieux.-print
avec-delete
(ou les utiliser ensemble:-print -delete
).Pour déplacer les fichiers dans un seul répertoire, remplacez
-print
avec-print0
et construisez un tuyau comme ceci:la source