Trouvez les fichiers qui ont été modifiés au cours des dernières 24 heures


265

Par exemple, un serveur MySQL fonctionne sur ma machine Ubuntu. Certaines données ont été modifiées au cours des dernières 24 heures.

Quels scripts (Linux) peuvent trouver les fichiers qui ont été modifiés au cours des dernières 24 heures?

Veuillez énumérer les noms de fichiers, les tailles de fichiers et l'heure modifiée.


Réponses:


479

Pour rechercher tous les fichiers modifiés au cours des dernières 24 heures (dernière journée complète) dans un répertoire spécifique particulier et ses sous-répertoires:

find /directory_path -mtime -1 -ls

Devrait être à votre goût

L' -avant 1est important - cela signifie que tout a changé il y a un jour ou moins. Un +avant 1signifierait plutôt que quelque chose a changé il y a au moins un jour, alors qu'avoir rien avant 1cela signifierait qu'il a été changé il y a un jour, ni plus, ni moins.


17
agréable! que diriez-vous des 2 dernières heures?
JackWM

114
utiliser "-mmin -120" au lieu de
mtime

1
pourquoi -avant la valeur numérique?
EsseTi

6
L'argument de -mtime est interprété comme le nombre de jours entiers dans l'âge du fichier. -mtime + n signifie strictement supérieur à, -mtime -n signifie strictement inférieur à.
Xavjer

3
Au lecteur: n'oubliez pas de supprimer le -lslors de l'utilisation dans un script
redolent

41

Vous pouvez le faire avec

find . -mtime 0

De man find:

[Le] temps écoulé depuis la dernière modification de chaque fichier est divisé par 24 heures et tout reste est supprimé. Cela signifie que pour correspondre à -mtime 0, un fichier devra avoir une modification dans le passé il y a moins de 24 heures.


25

Une autre manière, plus humaine:

find /<directory> -newermt "-24 hours" -ls

ou:

find /<directory> -newermt "1 day ago" -ls

ou:

find /<directory> -newermt "yesterday" -ls

11

Sur les systèmes compatibles GNU (c'est-à-dire Linux):

find . -mtime 0 -printf '%T+\t%s\t%p\n' 2>/dev/null | sort -r | more

Cela répertorie les fichiers et répertoires qui ont été modifiés au cours des dernières 24 heures ( -mtime 0). Il les répertoriera avec la dernière heure modifiée dans un format à la fois triable et lisible par l'homme ( %T+), suivi de la taille du fichier ( %s), suivi du nom de fichier complet ( %p), chacun séparé par des tabulations ( \t).

2>/dev/nulljette toute sortie stderr, de sorte que les messages d'erreur ne brouillent pas les eaux; sort -rtrie les résultats en fonction de la dernière modification en premier; et | morerépertorie une page de résultats à la fois.


2
Vous pouvez également utiliser | lessau lieu de | more, je suppose.
Stephen G Tuggy

7

Pour ceux qui atterriront ici à l'avenir (y compris moi-même), ajoutez une option -name pour trouver des types de fichiers spécifiques, par exemple: find /var -name "*.php" -mtime -1 -ls


5

Cette commande a fonctionné pour moi

find . -mtime -1 -print
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.