Comment trouver les fichiers qui ont été créés dans la dernière heure sous unix ?
C'est très bien et tout, mais ces drapeaux n'existent pas sous Solaris. find
que j'utilise. L'OP a dit Unix et je pense que ceux-ci sont uniquement pour Linux.
Comment trouver les fichiers qui ont été créés dans la dernière heure sous unix ?
Si le répertoire à rechercher est srch_dir
alors soit
$ find srch_dir -cmin -60 # change time
ou
$ find srch_dir -mmin -60 # modification time
ou
$ find srch_dir -amin -60 # access time
montre les fichiers créés, modifiés ou consultés au cours de la dernière heure.
correction : ctime est pour change node time (pas sûr cependant, corrigez-moi s'il vous plaît)
C'est très bien et tout, mais ces drapeaux n'existent pas sous Solaris. find
que j'utilise. L'OP a dit Unix et je pense que ceux-ci sont uniquement pour Linux.
L'astuce consiste à utiliser négatif valeurs temporelles ! Ce n'est pas si évident dans la page de manuel.
@jiggy La réponse d'Ayush donne un hack (basé sur -newer
) qui devrait fonctionner sur Solaris.
Les systèmes de fichiers UNIX (généralement) ne stockent pas les heures de création. Au lieu de cela, il n'y a que le temps d'accès, le temps de modification (des données) et le temps de changement (d'inode).
Ceci étant dit, find
a -atime
-mtime
-ctime
prédicats :
$ man 1 [find](http://pubs.opengroup.org/onlinepubs/009695399/utilities/find.html)
...
**\-ctime** _n_
The primary shall evaluate as true if the time of last change of
file status information subtracted from the initialization time,
divided by 86400 (with any remainder discarded), is n.
...
Ainsi, find -ctime 0
trouve tout ce pour quoi l'inode a changé (par exemple, inclut la création de fichiers, mais compte aussi le nombre de liens et les changements de permissions et de taille de fichiers) il y a moins d'une heure.
Vérifier ce lien et ensuite, aidez-vous.
le code de base est
#create a temp. file
echo "hi " > t.tmp
# set the file time to 2 hours ago
touch -t 200405121120 t.tmp
# then check for files
find /admin//dump -type f -newer t.tmp -print -exec ls -lt {} \; | pg
Merci, mais cette recherche ne porte que sur t.tmp. Que faire si je veux trouver tous les fichiers créés au cours de la dernière heure.
Ankur : il créera un fichier temporaire t.tmp et fixera son heure de création à il y a 2 heures... après cela, il recherchera dans le répertoire actuel tous les fichiers qui ont été créés après t.tmp, c'est-à-dire dans les 2 dernières heures....
Utilisez find pour lister les fichiers modifiés au cours de la dernière heure :
$ find . -mtime -1
le . est le chemin de recherche -mtime paramètre de temps -1 liste les fichiers modifiés dans les dernières 24 heures Autres paramètres
-amin quand le fichier a été accédé en minutes
-Date d'accès au fichier (en jours)
-cmin quand le fichier a été créé en minutes
-ctime quand le fichier a été créé en jours -mmin quand le fichier a été modifié en minutes Paramètres numériques :
-mtime -0.5
-1 les dernières 24 heures
-0,5 les 12 dernières heures
-0.25 les 6 dernières heures
+3 plus de trois jours
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.