web-dev-qa-db-fra.com

Comment trouver un fichier récent par date créé?

Si je veux trouver un fichier par son nom, je fais ce qui suit:

find -name app

Si je veux trouver un fichier par type, je fais ce qui suit:

find -name app -type d

Cependant, comme app est un nom générique, de nombreux résultats apparaissent. Je voudrais trouver un répertoire nommé app, qui a été créé aujourd'hui. Existe-t-il un drapeau ou une commande pour y parvenir?

5
JohnMerlino

Pour rechercher le système de fichiers entier (/) pour

  • répertoires (-type d),
  • appelé app (-name app),
  • qui ont été modifiés plus récemment qu’un jour (24 heures) il y a (-mtime 0),

...Utilisation:

find / -name app -type d -mtime 0

Source: man find .

Voir en particulier l'explication de l'indicateur -mtime et l'exemple "find $HOME -mtime 0":

[T] o correspond - mtime 0 , un fichier devra être modifié dans le passé il y a moins de 24 heures.

(Ainsi, le temps en jours depuis la modification du fichier est arrondi au nombre entier le plus proche aux fins de correspondance avec -mtime.)


La création est considérée comme une forme de modification aux fins de l'horodatage de fichier. Elle fonctionnera donc même si le contenu du fichier n'a pas été modifié après sa création. Il fera également correspondre les dossiers avec les horodatages de modification du dernier jour créés précédemment, mais vous n'en avez probablement pas beaucoup dont le nom exact est app.

Lorsqu'un fichier était créé , il n'est généralement pas stocké dans le système de fichiers. Mais l'heure à laquelle ses métadonnées ont été modifiées pour la dernière fois (par exemple, nom/emplacement, propriété, autorisations) est stocké. Si vous préférez utiliser cette méthode pour modifier le contenu du fichier, utilisez -ctime à la place de -mtime:

find / -name app -type d -ctime 0

Pour -mtime et -ctime, la création initiale du fichier est considérée comme une modification/modification du statut.

6
Eliah Kagan

Options de recherche de commande:

Si vous avez besoin d'une plage de dates spécifique il y a plusieurs jours.

Exemple de fichiers de recherche modifiés entre le 1er février 2013 et le 1er février 2014 dans le répertoire/data/docs:

touch --date "2013-02-01" /tmp/start
touch --date "2014-02-01" /tmp/end
find /data/docs -type f -newer /tmp/start -not -newer /tmp/end

Vous pouvez enregistrer la liste dans un fichier texte appelé findlist.txt comme suit:

find /data/docs -type f -newer /tmp/start -not -newer /tmp/end > findlist.txt
2
kyodake

Obtenir tous les fichiers modifiés entre la date: 2018-02-28 et 2018-03-28

find . -type f -newermt 2018-02-28 -not -newermt 2018-03-28
0
Benny