web-dev-qa-db-fra.com

Liste des fichiers modifiés entre deux périodes

J'essaie d'obtenir la liste des fichiers modifiés entre une période donnée, comme expliqué dans la réponse this .

J'ai enregistré la date et l'heure dans deux variables [nn et nn1 (nom stupide)] et j'ai essayé avec la commande find. J'ai eu l'erreur suivante -

vikram@vikram-Studio-XPS-1645:~$ echo $nn1
10-04-12 23:26:48
vikram@vikram-Studio-XPS-1645:~$ echo $nn
10-05-12 00:26:48
vikram@vikram-Studio-XPS-1645:~$ find . -newermt $nn -and -not -newermt $nn1 -print
find: paths must precede expression: 00:26:48
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
vikram@vikram-Studio-XPS-1645:~$

Pourquoi cette erreur se produit ??

7
Vikram

Votre syntaxe est légèrement incorrecte. Reprenons cela avec des noms de variables significatifs; nous comprendrons mieux ce qui se passe au fur et à mesure.


export newerthan="2012-10-04 00:05:00"
export olderthan="2012-10-05 16:30:00"
find . -newermt "$newerthan" ! -newermt "$olderthan"

Cela trouvera d’abord les fichiers et les répertoires modifiés après le 4 octobre 2012 à 00h05. Ensuite, les résultats supprimer qui ont été modifiés après le 5 octobre 2012 à 16h30.


Pour obtenir des résultats sans le ./ initial sur chaque ligne, utilisez cette commande:

find . -newermt "$newerthan" ! -newermt "$olderthan" | sed 's/^.\///g'
12
SirCharlo