J'ai Windows 7 Box avec Cygwin installé. J'ai plusieurs dossiers avec des fichiers, dans un dossier racine unique. Je veux trouver la liste des fichiers qui ont un horodatage dans une plage de date / heure spécifique.
J'ai Windows 7 Box avec Cygwin installé. J'ai plusieurs dossiers avec des fichiers, dans un dossier racine unique. Je veux trouver la liste des fichiers qui ont un horodatage dans une plage de date / heure spécifique.
Réponses:
Vous pouvez utiliser le find
commande avec le -newerXY
option.
De man find
:
-newerXY référence
Compare l'horodatage du fichier en cours avec référence . le référence argument est normalement le nom d'un fichier (et l'un de ses horodatages est utilisé pour la comparaison), mais il peut également s'agir d'une chaîne décrivant une heure absolue. X et Y sont des espaces réservés pour les autres lettres, et ces lettres sélectionnent l'heure à laquelle référence est utilisé pour la comparaison.
Les valeurs possibles pour X et Y sont les suivants:
X fait référence au fichier en cours et Y au référence vous voudrez donc utiliser "m" pour la première lettre (date de modification du fichier en cours) et "t" pour la seconde (horodatage transmis sous forme de chaîne). Exemple de script:
find . -type f -newermt "2012-05-01" ! -newermt "2012-05-15"
Tous les fichiers modifiés entre le 1er et le 15 mai 2012 sont retrouvés. !
(logique NOT
) l’opérateur inverse le sens de l’argument qui le suit - si -newerXY
signifie "X est plus récent que Y", alors ! -newerXY
signifie "X est plus vieux que Y".
Puisque vous êtes sous Windows, vous pouvez également utiliser Powershell. le Get-ChildItem
La cmdlet renvoie tous les fichiers d’un dossier donné (de manière récursive, le cas échéant) et le Where-Object
L'applet de commande vous permet de filtrer la sortie d'autres commandes. Exemple de script (en supposant que le répertoire que vous souhaitez rechercher est le répertoire actuel):
Get-ChildItem -Recurse | Where-Object { $_.LastWriteTime -ge "2012-05-01" -and $_.LastWriteTime -le "2012-05-15" -and !$_.PSIsContainer }
Tous les fichiers modifiés entre le 1er et le 15 mai 2012 sont renvoyés. Vous pouvez utiliser CreationTime
au lieu de LastWriteTime
pour vérifier l'heure de création du fichier à la place. le !$_.PSIsContainer
le filtre ne renvoie que les fichiers ( PSIsContainer
est vrai pour les dossiers, et le point d'exclamation est encore la logique NOT
opérateur).
Il est également possible de trouver ces fichiers avec l’explorateur de fichiers GUI. Quelques exemples:
datemodified:2015-02-18 08:00..2015-02-18 13:00
datemodified:>2015-02-18 08:00
datemodified:<2015-02-18 08:00
Et quelques lectures supplémentaires: Conseils avancés pour la recherche dans Windows , Utilisation de la syntaxe de requête avancée par programme
Superuser
ce qui signifie que les réponses devraient inclure TOUTES les informations pertinentes, pas seulement des liens vers des ressources externes.