GNU/Linux >> Tutoriels Linux >  >> Debian

Debian - Recherche des fichiers modifiés en dernier lieu au cours des 2 dernières minutes dans votre répertoire personnel qui contiennent une certaine chaîne ?

Je recherche des fichiers dans mon répertoire personnel qui ont été modifiés au cours des deux dernières minutes et qui contiennent également une certaine chaîne. J'ai essayé avec cette commande :

 find -type d -mmin -2 -ls | grep -Ril "mystring" 

Cela semble fonctionner, mais apparemment, il n'imprime que les fichiers contenant la chaîne donnée à l'intérieur plutôt que les fichiers modifiés pour la dernière fois il y a 2 minutes contenant la chaîne. Il semble que la première partie de la commande ne soit pas exécutée.

Réponse acceptée :

Vous avez fait une bonne tentative avec votre propre suggestion

find -type d -mmin -2 -ls | grep -Ril "mystring"

Cela aurait identifié des répertoires (-type d ) qui ont été modifiés dans les deux dernières minutes plutôt que des fichiers (-type f ). Canaliser la sortie de -ls à grep aurait généralement recherché les noms de fichiers générés pour mystring . Cependant, dans ce cas, le -R flag modifie le comportement de grep et il ignore votre liste de noms de fichiers, recherchant à la place tous les fichiers dans et en dessous du répertoire actuel.

Alors, divisons le problème en deux parties

  1. Rechercher les derniers fichiers modifiés au cours des 2 dernières minutes dans votre répertoire personnel

    find ~ -type f -mmin -2
    
  2. [Fichiers] contenant une certaine chaîne

    grep -Fl 'certain String' {files...}
    

Maintenant, vous devez les assembler. Le {} est un espace réservé pour les noms de fichiers générés par le find de l'étape 1, et le + final indique que le {} peut être répété plusieurs fois , c'est-à-dire plusieurs noms de fichiers

    find ~ -type f -mmin -2 -exec grep -Fl 'certain String' {} +

Changer le grep à echo grep vous montrera ce qui est exécuté par le find commande; cela peut être une technique de débogage utile :

    find ~ -type f -mmin -2 -exec echo grep -Fl 'certain String' {} +

Veuillez envisager d'exécuter man find et man grep pour connaître les différentes options, comme le -F et -l dans grep -Fl , sinon vous n'apprenez rien de l'exercice que vous avez défini ; vous ne faites que copier une réponse.


Debian
  1. Comment trouver tous les fichiers qui ne contiennent pas de chaîne de texte ?

  2. Comment utiliser l'interface graphique pour rechercher des fichiers dans Gnome ?

  3. Déplacer uniquement les 8 derniers fichiers d'un répertoire vers un autre répertoire ?

  4. linux :recherche des fichiers de type *.php récemment modifiés

  5. Comment utiliser grep pour rechercher dans le répertoire courant tous les fichiers ayant la chaîne a hello mais afficher uniquement les fichiers .h et .cc?

Comment rechercher vos fichiers ou répertoires avec la commande Find sous Linux

Quel outil de sauvegarde est le meilleur pour Debian 11 ?

Comment trouver des fichiers dans Debian 10

Comment rechercher des fichiers à partir de la ligne de commande Linux

Un moyen rapide de rechercher certaines lignes de code dans de nombreux fichiers d'un projet

Comment rechercher un mot dans tout le contenu d'un répertoire sous Linux