Trouver un fichier qui a 30 minutes


12

Comment trouver le fichier qui date de 30 minutes /bin/ksh?


4
Voulez-vous dire "si son contenu a été modifié il y a 30 minutes" ou "n'existait pas avant sa création il y a 30 minutes"? De plus, quel système d'exploitation utilisez-vous? Différents systèmes d'exploitation sont livrés avec différentes versions de find.
Mark Plotnick

@ Mark Plotnick, je veux trouver le fichier qui datait de 30 minutes
Aravind

Je pense qu'il / elle veut dire a été créé il y a 30 minutes . Comme si, par exemple, quelqu'un avait X ans, il / elle était né (e) X fois auparavant.
erik

Réponses:


15

Sous Linux, il n'y a pas de trace de l'heure de création d'un fichier. Vous ne pouvez accéder qu'à:

  • la dernière date de modification du contenu (une numération de création comme une modification bien sûr), mtime,
  • la dernière fois d'accès, atime,
  • la dernière date de modification des méta-données, ctime.

Si vous souhaitez rechercher des fichiers avec un test basé sur ces heures, find( man find) peut vous aider.

Vous l'utiliseriez de cette façon pour trouver un fichier consulté il y a exactement 30 minutes dans votre répertoire actuel et ses sous-répertoires:

find -amin 30

Habituellement, vous voudrez utiliser un intervalle car il peut être difficile de donner un nombre exact de minutes:

find -amin +25 -amin -35

Cela trouvera les fichiers consultés il y a plus de 25 mais moins de 35 minutes.

Et si vous n'êtes intéressé que par le temps de modification et non par le temps d'accès (c'est-à-dire de lecture), remplacez -aminpar -mmin.


vous ne voulez pas de temps. atime est le temps d'accès.
ctrl-alt-delor

@richard L'OP n'a pas précisé ce qu'il voulait dire donc ... Quoi qu'il en soit, je mets mtimeaussi dans la réponse
lgeorget

1
@ lgeorget quand je l'utilise -mtime 30montrait les fichiers vieux de 30 jours.
Aravind

@ user2910201 Ups me stupide. Xtimeles options sont pour les jours et les Xminoptions pour les minutes. Mon mauvais, je
modifie

2
@ user2910201 mais notez que vous pouvez l'utiliser Xtimeavec n'importe quelle unité de temps raisonnable comme 30mpendant trente minutes ou 5dpendant cinq jours
lgeorget

3

Vous pouvez utiliser mtimepour ce faire:

find . -mmin 30    #exactly 30 minutes old

cela vous indiquera les fichiers qui étaient createdou modified30 minutes en arrière
g4ur4v

@ g4ur4v lorsque j'utilise, -mminil montre que ce -mminn'est pas une option valide
Aravind

Essayez ceci:find /path -mtime +30m
ryekayo

Je ne sais pas pourquoi il ne reconnaît pas -mmin, j'ai recherché de nombreux exemples en utilisant cette commande ..
ryekayo

3

Sans pour autant GNU/BSD find

TZ=ZZZ0 touch -t "$(TZ=ZZZ0:30 date +%Y%m%d%H%M.%S)" /reference/file

puis find . -newer /reference/file

solution donnée par Stéphane Chazelas

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.