Rechercher la commande sous Linux (rechercher des fichiers et des répertoires)
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’attribut
path...
définit le ou les répertoires de départ où find recherchera les fichiers., - l’attribut
expression
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
: socketPar 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 644
et les autorisations de répertoire à 755
en 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
: octetsw
: deux octets motsk
: Kilo-octetsM
: méga-octetsG
: Giga-octetsLa 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:
-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
.