Rechercher la commande sous Linux (rechercher des fichiers et des répertoires)

0 Comments

la commande find est l’un des outils les plus puissants de L’arsenal des administrateurs système Linux. Il recherche des fichiers et des répertoires dans un répertoire de la hiérarchie fondée sur une expression donnée et peut effectuer l’action spécifiée par l’utilisateur sur chaque fichier correspondant.

Vous pouvez utiliser la commandefind pour rechercher des fichiers et des répertoires en fonction de leurs autorisations, de leur type, de leur date, de leur propriété, de leur taille, etc., Il peut également être combiné avec d’autres outils tels que le grep ou sed .

trouver la Syntaxe de la Commande #

La syntaxe générale de la find commande:

  • Le options attribut contrôle le traitement des liens symboliques, des options de débogage, et de la méthode d’optimisation.
  • l’attributpath... définit le ou les répertoires de départ où find recherchera les fichiers.,
  • l’attributexpression est composé d’options, de modèles de recherche et d’actions séparés par des opérateurs.

pour rechercher des fichiers dans un répertoire, l’utilisateur invoquant la balise find commande doit disposer d’autorisations en écriture sur ce répertoire.

prenons un coup d’oeil à l’exemple suivant:

recherche de Fichiers par Nom #

la recherche de fichiers par nom est probablement l’utilisation la plus commune de la balise find commande., Pour rechercher un fichier par son nom, utilisez la balise -name suivi du nom du fichier que vous recherchez.

Par exemple, pour rechercher un fichier nommé document.pdf dans le /home/linuxize répertoire, utilisez la commande suivante:

Pour exécuter une casse de recherche, modifier la balise -name option -iname:

La commande ci-dessus va correspondre à « Document.pdf »,  » DOCUMENT.PDF” ..etc.,

recherche de Fichiers par Extension #

a la Recherche de fichiers par extension est la même que la recherche de fichiers par nom. Par exemple, pour trouver tous les fichiers se terminant par .log.gz dans le répertoire /var/log/nginx, vous devez taper:

Il est important de mentionner que vous devez soit citer le motif, soit échapper à l’astérisque * symbole avec barre oblique inverse \ afin qu’il ne soit pas interprété par le shell lorsque vous utilisez le caractère générique.,

Pour trouver tous les fichiers qui ne correspondent pas à l’expression régulière *.log.gz vous pouvez utiliser la balise -not option. Par exemple, pour trouver tous les fichiers qui ne se terminent pas par *.log.gz vous utiliseriez:

rechercher les fichiers par Type #

parfois, vous devrez rechercher des types de fichiers spécifiques tels que des fichiers réguliers, des répertoires ou des liens symboliques. Sous Linux, tout est fichier.,div>: named pipe (FIFO)

  • s: socket
  • Par exemple, pour trouver tous les répertoires dans le répertoire de travail actuel , vous utiliseriez:

    l’exemple commun serait de modifier récursivement les autorisations de fichier de site Web en 644et les autorisations de répertoire à 755en utilisant la commande chmod:

    rechercher des fichiers par taille #

    pour rechercher des fichiers en fonction de la taille du fichier, passez le paramètre avec les critères de taille.,9fdb538a6b »>: blocs de 512 octets (par défaut)

  • c: octets
  • w: deux octets mots
  • k: Kilo-octets
  • M: méga-octets
  • G: Giga-octets
  • La commande suivante permettra de trouver tous les fichiers de exactement 1024 octets à l’intérieur de la balise /tmp répertoire:

    Le find commande vous permet également de rechercher les fichiers qui sont plus ou moins une taille spécifiée.,

    dans l’exemple suivant, nous recherchons tous les fichiers inférieurs à 1MB dans le répertoire de travail actuel. Avis de la minus - symbole avant de la taille de la valeur:

    Si vous souhaitez rechercher des fichiers avec une taille plus grande que la 1MB, alors vous devez utiliser le plus + symbole:

    Vous pouvez même rechercher des fichiers dans une gamme de taille., La commande suivante permettra de trouver tous les fichiers entre 1 et 2MB:

    Rechercher des Fichiers par Date de Modification #

    Le find commande peut également rechercher les fichiers en fonction de leur dernière modification, l’accès, ou de changer le temps.

    comme lors de la recherche par taille, utilisez les symboles plus et moins pour « supérieur à” ou « inférieur à”.

    disons qu’il y a quelques jours, vous avez modifié l’un des fichiers de configuration de dovecot, mais vous avez oublié lequel., Vous pouvez facilement filtrer tous les fichiers sous le répertoire /etc/dovecot/conf.d qui se termine par .conf et qui a été modifié au cours des cinq derniers jours:

    Voici un autre exemple de filtrage de fichiers basé sur la date de modification 8217243580″> option., La commande ci-dessous répertoriera tous les fichiers dans le répertoire /home qui ont été modifiés 30 ou il y a plusieurs jours:

    rechercher les fichiers par Permissions #

    Le -perm option vous permet de rechercher des fichiers en fonction des autorisations de fichier.,

    par exemple, Pour trouver tous les fichiers avec des autorisations de exactement 775 à l’intérieur de la balise /var/www/html directory, vous pouvez utiliser:

    Vous pouvez préfixer le mode numérique avec moins - ou slash /.

    Quand slash / est utilisé comme préfixe, puis au moins une catégorie (utilisateur, groupe, ou autres) doit avoir au moins respectives des bits d’un fichier de match.,

    considérez l’exemple de commande suivant:

    la commande ci-dessus correspondra à tous les fichiers avec des autorisations de lecture définies pour l’utilisateur, le groupe ou d’autres.

    Si minus- est utilisé comme préfixe, alors pour que le fichier corresponde, au moins les bits spécifiés doivent être définis., La commande suivante va rechercher les fichiers en lecture / écriture pour le propriétaire, le groupe et sont lisibles par d’autres utilisateurs:

    Rechercher des Fichiers par le Propriétaire #

    Pour trouver les fichiers appartenant à un utilisateur ou un groupe particulier, utilisez la balise -user et -group options.

    Par exemple, pour rechercher tous les fichiers et répertoires possédés par l’utilisateur linuxize, vous devez exécuter:

    Voici un exemple réel., Disons que vous voulez trouver tous les fichiers appartenant à l’utilisateur www-data et changer le propriétaire des fichiers correspondants à partir de www-data de nginx:

    Trouver et Supprimer les Fichiers #

    Pour supprimer tous les fichiers correspondants, ajouter la balise -delete option à la fin du match expression.

    assurez-vous d’utiliser cette option uniquement lorsque vous êtes sûr que le résultat correspond aux fichiers que vous souhaitez supprimer., C’est toujours une bonne idée d’imprimer les fichiers correspondants avant d’utiliser la balise -delete option.

    Par exemple, pour supprimer tous les fichiers se terminant par .temp dans le /var/log/, vous pouvez utiliser:

    Utiliser la balise -delete option avec une extrême prudence. La commande find est évaluée comme une expression et si vous ajoutez d’abord l’option -delete, la commande supprimera tout ce qui se trouve en dessous des points de départ que vous avez spécifiés.,

    Quand il s’agit de répertoires, find pouvez uniquement supprimer les répertoires vides, de même que rmdir .

    Conclusion

    Nous vous avons montré comment utiliser la balise find commande avec différentes options et critères.

    Cet article devrait vous donner une compréhension fondamentale de la façon de localiser les fichiers sur vos systèmes Linux. Vous pouvez également visiter la page de manuelfind et lire toutes les autres options puissantes de la commandefind.


    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *