GNU/Linux >> Tutoriels Linux >  >> Linux

La commande Linux find Directory :Explication

Vous devrez peut-être trouver un répertoire dans votre système d'exploitation basé sur Linux, et vous souffrez parce que vous ne connaissez pas la commande réelle pour trouver l'emplacement des différents fichiers présents sur votre système d'exploitation basé sur Linux. La commande Linux find directory est utilisée à cette fin.

La commande Rechercher est utilisée pour rechercher l'emplacement des fichiers dans les systèmes basés sur Unix ou Linux. La commande find est incluse dans le package "findutils", et elle est présente dans toutes les distributions Linux. Vous pouvez rechercher des répertoires et des fichiers tout en appliquant de nombreuses conditions. L'action sera prise en fonction de vos conditions appliquées qui affecteront le résultat.

Introduction à la commande de recherche de répertoire Linux

La forme la plus simple de la commande find est donnée par :

find [paths] [expression] [actions]

Les autres formes de la commande find sont données lorsque la commande find est exécutée, elle recherche des répertoires et des fichiers dans chaque chemin. Une fois qu'il a trouvé un répertoire dans le chemin fourni, il commence à rechercher d'autres fichiers et répertoires dans ce même chemin. Ce processus ne s'arrête pas tant que vous n'avez pas recherché tous les fichiers dans le chemin indiqué.

find /where/to/look/up criteria action
find /dir/path/look/up criteria action
find /dir/path/look/up -name "name-of-dir"
find /dir/path/look/up -name "pattern"
find /dir/path/look/up -name "name-of-dir" -print
find /dir/path/look/up -name "name-of-dir"
find / -name "name-of-dir"
find / -type d -name "name-of-dir"
find / -type d -name "name-of-dir" 2>/dev/null

Recherche dans tous les répertoires et fichiers

Si vous voulez la liste de tous les fichiers et répertoires de votre chemin spécifié, vous pouvez le faire en spécifiant le chemin. Par exemple, si vous voulez une liste de tous les fichiers du chemin usr/share, vous pouvez utiliser la commande suivante :

find /usr/share

Si vous souhaitez répertorier les fichiers de plusieurs répertoires à la fois, vous pouvez utiliser la commande suivante :une fois que vous avez exécuté cette commande, une liste de tous les répertoires et fichiers sera répertoriée sur la console à partir du chemin que vous avez spécifié. La liste peut être très longue en fonction de votre contenu stocké.

find /bin /usr/li

Supposons que vous vouliez une liste du contenu présent dans votre travail en cours directement. Cela peut être fait rapidement en mettant un point (.) après la commande find, comme ceci :

find .

Si, d'une manière ou d'une autre, vous oubliez de mettre le point après la commande find, les données du répertoire de travail actuel seront toujours affichées en exécutant la commande find uniquement.

find

Filtrer les éléments avec leurs noms

Plusieurs fois, il est nécessaire de filtrer différents éléments à l'aide de leurs noms. La commande de recherche de répertoire Linux peut également vous aider à le faire.

Supposons que vous souhaitiez rechercher un fichier nommé NEW.txt situé dans le répertoire /Desktop, vous pouvez alors utiliser le commutateur "-name" comme indiqué ci-dessous :

find Desktop -name NEW.txt

L'utilisation du commutateur "-name" est plus sensible à la casse. Pour utiliser une commande insensible à la casse, vous pouvez utiliser "-iname" à la place de "-name"

find Desktop -iname new.txt

Ces deux commutateurs prennent en charge les "jokers" qui sont utilisés comme espaces réservés pour les caractères inconnus. Le caractère générique "*" est utilisé pour afficher n'importe quel nombre de caractères inconnus alors que "?" est utilisé pour un seul caractère inconnu.

Pour utiliser ces caractères génériques, vous devez mettre le paramètre de la commande "name/iname" entre guillemets doubles ou simples.

Supposons que vous souhaitiez rechercher tous les fichiers du répertoire /Desktop qui incluent .txt en dernier. Ensuite, cela peut être fait par la commande Linux find directory suivante :

find Desktop -name '*.txt'

Maintenant, si vous souhaitez rechercher les fichiers contenant trois caractères dans leur nom, vous pouvez utiliser "?" caractère générique entre guillemets.

find Desktop -name '???'

Spécifier la recherche de fichiers ou de répertoires

Lorsque vous utilisez Linux pour trouver la commande de répertoire, vous pouvez également spécifier le type de votre recherche. Vous pouvez utiliser le commutateur "-type" pour spécifier que vous recherchez uniquement des fichiers ou des répertoires. Il y a trois paramètres de commutateur "-type" au total :

  • f - fichiers
  • d - répertoires
  • l - liens symboliques

Si vous souhaitez trouver tous les répertoires présents dans le chemin /usr, vous pouvez utiliser :

find /usr -type d

Il existe une autre façon d'utiliser les commutateurs en les combinant. Par exemple, pour rechercher ".txt" avec le commutateur -name et en même temps spécifier le type de fichier par le commutateur "-type":

find /usr -type f -name '*.txt'

Comme dans l'exemple ci-dessus, vous pouvez également rechercher des répertoires en utilisant le paramètre "d" dans le chemin /usr. Pour trouver des répertoires nommés "cerisier" :

find /usr -type d -name 'cherrytree'

Interrupteur vide pour rechercher des fichiers vides

Vous pouvez utiliser le commutateur "-empty" dans Linux dans la commande Linux find directory. Ce commutateur est utilisé pour trouver tous les fichiers vides ou tous les répertoires vides présents dans votre chemin spécifié. Pour trouver des fichiers vides dans le répertoire /usr, vous pouvez appliquer la commande suivante avec le commutateur "-type" :

find /usr -type d -empty

Annulation des correspondances dans les commandes de recherche

Si vous souhaitez exclure quelque chose de la recherche, vous pouvez utiliser la commande find pour annuler la condition.

Supposons que vous souhaitiez rechercher les fichiers sans extension ". Py" dans le répertoire /usr. Vous pouvez inclure un point d'exclamation (!) avec le commutateur "-name", comme indiqué ci-dessous :

find /usr -type f ! -name '*.py'

Le point d'exclamation peut également être utilisé pour s'opposer à tout autre interrupteur. Par exemple, dans le cas d'un commutateur "-empty", vous pouvez utiliser "!" pour rechercher des répertoires non vides à la place des répertoires vides.

find /usr -type f ! -empty

Rechercher des fichiers en fonction de leur propriété

Il existe une option pour rechercher des fichiers en fonction de la propriété de l'utilisateur. Vous pouvez utiliser le commutateur "-user" pour rechercher les fichiers liés à un utilisateur particulier. Si vous souhaitez rechercher les fichiers liés à un utilisateur nommé "root", vous pouvez appliquer la commande suivante pour obtenir une liste de tous leurs fichiers.

find / -type f -user root

Au lieu du nom d'utilisateur, vous pouvez également utiliser l'ID utilisateur pour vérifier tous les fichiers appartenant à cet utilisateur. Si vous ne connaissez pas votre ID utilisateur, vous pouvez le trouver en utilisant la commande suivante.

id -u <username>

Vous pouvez également effectuer une recherche par groupe à l'aide du nom de groupe ou de l'ID de groupe. Pour trouver votre ID de groupe, vous pouvez utiliser la commande suivante.

id -g <username>

Rechercher des fichiers en fonction de leur taille

La commande Linux Find Directory vous permet également de rechercher des fichiers en fonction de leur taille. À cette fin, le commutateur "-size" est utilisé et ne s'applique qu'aux fichiers, pas aux répertoires.

Vous pouvez spécifier la taille du fichier en saisissant un nombre suivi d'un alphabet. Ces lettres sont utilisées avec le commutateur "-taille",

  • c-octets
  • k - kilo-octets
  • m - mégaoctets
  • g - gigaoctets

Vous pouvez également appliquer une condition inférieure ou supérieure à une condition à l'aide des signes "+" et "-".

Voici un exemple pour trouver tous les fichiers système d'une taille de 20 Ko :

find / -size 20k

Si vous souhaitez rechercher des fichiers supérieurs à 1 Go, vous pouvez utiliser :

find / -size +1G

Si vous souhaitez des fichiers dont la taille est inférieure à 20 Mo, vous pouvez utiliser la déclaration suivante :

find / -size -20M

Effectuer des actions avec la commande de recherche de répertoire

Les commandes que nous avons utilisées jusqu'à présent ne servent qu'à afficher les résultats sur le terminal, mais nous pouvons effectuer certaines actions à l'aide de la commande find. Nous pouvons également effectuer les actions nécessaires comme copier ou supprimer un fichier.

Pour supprimer des fichiers

Vous pouvez facilement supprimer n'importe quel fichier ou répertoire en utilisant simplement "-delete" avec votre commande de recherche. Supposons que vous souhaitiez supprimer tous les fichiers vides présents dans le répertoire /Desktop, vous pouvez alors utiliser la commande suivante :

find Desktop -type f -empty -delete

Exécution des commandes

Le commutateur "-exec" est utilisé pour exécuter une commande personnalisée. Vous pouvez faire beaucoup de choses avec l'aide du commutateur "-exec".

Pour copier tous les fichiers à la fois, vous pouvez utiliser :

find ~ -type f -name '*.mp3' -exec cp {} ';'

Dans la commande ci-dessus, nous utilisons ";" pour afficher la fin de la commande entre guillemets. Les "{}" (crochets) que vous voyez sont utilisés pour définir l'emplacement.

Désormais, lorsqu'un fichier correspondant est détecté conformément à la spécification, la commande cp est activée pour déplacer les fichiers de l'emplacement.

Conclusion

Vous pouvez faire beaucoup plus à l'aide de la commande find. C'est pratique pour ceux qui sont habitués à Linux CLI (interface de ligne de commande). La commande find contient de nombreuses possibilités qui vous aideront à effectuer différentes actions et bien plus encore. Il existe également des didacticiels sur les commandes de déplacement et de copie de Linux, jetez-y un coup d'œil.


Linux
  1. Maîtrisez la commande Linux ls

  2. Trouver le temps d'exécution d'une commande ou d'un processus sous Linux

  3. Comment utiliser la commande Linux find pour rechercher des fichiers

  4. La commande locate sous Linux

  5. Commande de déplacement de répertoire Linux

Comment trouver la taille totale d'un répertoire sous Linux

Comment rechercher des fichiers avec la commande fd sous Linux

La commande timer sous Linux

Explication de la commande Arping sur Linux

15 exemples super utiles de la commande Find sous Linux

La commande Linux CP - expliquée et simplifiée