Savez-vous combien de fichiers se trouvent dans une nouvelle installation de Linux ? Si vous utilisez PopOS! Distribution Linux à titre d'exemple, il existe plus de 31 000 fichiers. Et cela avant de commencer à créer des documents, à stocker de la musique, à télécharger des PDF ou à organiser des images.
Pour cette raison, trouver le bon fichier ou dossier sous Linux lorsque vous en avez besoin devient un défi. Dans cet article, vous apprendrez à utiliser la commande Linux FIND et nous allons vous donner tous les exemples possibles.
Syntaxe de la commande Linux FIND
La syntaxe fait référence à la façon dont les mots ou les commandes sont assemblés. Tout comme une phrase normale peut devenir absurde en mélangeant simplement les mots, les commandes peuvent échouer si elles ne sont pas utilisées dans la syntaxe appropriée.
trouver [chemin] [conditions] [actions]
Voici ce que cela signifie :
find – lance l'utilitaire Find sous Linux
chemin – où chercher
conditions – arguments que vous souhaitez appliquer à la recherche
actions : ce que vous voulez faire avec les résultats
Un exemple simple utilisant les trois ressemble à :
trouver . -name fichier-échantillon.rtf -print
Comme vous l'avez deviné, cela trouvera le nom de fichier file-sample.rtf .
Le chemin point (. ) indique à find de rechercher dans le répertoire courant et tous les répertoires qu'il contient.
La condition -name indique à find d'obtenir le fichier portant ce nom spécifique.
L'action -print indique à FIND d'afficher les résultats à l'écran.
Le point et -print sont les valeurs par défaut pour la commande find. Cela fera toujours la même chose si vous ne les utilisez pas. Ainsi, find -name file-sample.rtf vous donnera les mêmes résultats.
Linux TROUVER dans un autre répertoire
Vous pouvez effectuer une recherche dans un répertoire différent de celui dans lequel vous vous trouvez. Insérez simplement le chemin du répertoire après FIND. Si vous êtes à la racine et que vous savez que le fichier se trouve quelque part dans le répertoire home/user , vous utiliserez :
trouver home/user -name file-sample.rtf
Il s'agit toujours d'une recherche récursive, elle parcourra donc tous les répertoires sous utilisateur ..
Linux FIND Recherche dans plusieurs répertoires
Si vous souhaitez effectuer une recherche dans plusieurs répertoires à la fois, il suffit de les lister dans la commande, séparés par un espace.
trouver /lib /var /bin -name file-sample.rtf
Linux FIND sans récursion ou récursion limitée
Si vous utilisiez la commande FIND ci-dessus au niveau racine, elle parcourrait tous les répertoires du système. Donc, si vous souhaitez vous en tenir uniquement au répertoire actuel, utilisez l'option -maxdegree . Le nombre après -maxdegree indique à Find la profondeur à atteindre avant de s'arrêter.
L'utilisation de -maxdegree 1 signifie uniquement ce répertoire.
find -name file-sample.rtf -maxdegree 1
Utiliser -maxdegree 2 ou un nombre supérieur signifie aller plus loin d'autant de niveaux.
trouver -maxdegree 5 -name file-sample.rtf
Exemple de caractère générique Linux FIND
La commande FIND utilise l'astérisque (* ) comme caractère générique. Utilisez-le pour toute partie du nom dont vous n'êtes pas sûr. Il peut être utilisé plusieurs fois dans le nom. Sans le type de fichier dans le nom du fichier, les résultats incluront également les répertoires correspondants.
trouver le fichier home/user -name*sample*
Exemple de recherche Linux par type
Pour rechercher uniquement un fichier ou un répertoire, utilisez l'option -type et le descripteur approprié. Il y en a quelques-uns, mais les fichiers et les répertoires sont les plus courants :
f – fichier
d – répertoire
b – bloquer l'appareil
c – périphérique de caractères
l – lien symbolique
s – prise
trouver home/user -name file*sample* -type d
Exemple Linux FIND insensible à la casse
Contrairement à Windows, Linux se soucie de savoir si une lettre est en majuscule ou en minuscule. Donc, si vous souhaitez qu'il recherche à la fois File-Sample.rtf et file-sample.rtf, utilisez l'option -iname .
trouver home/user -iname File-Sample.rtf
Exemple Linux FIND avec plusieurs fichiers
Disons que vous vouliez rechercher les versions .rtf et .html d'un fichier. Cela peut être fait en une seule commande en utilisant l'opérateur -o (ou). Dans certaines distributions, vous devrez peut-être mettre les noms entre crochets, comme ( -name file-sample.rtf -o -name file-sample.html ) ..
trouver home/user -name file-sample.rtf -o -name file-sample.html
Linux FIND Fichiers qui ne correspondent pas à un nom
Peut-être savez-vous qu'il existe la version .html d'un fichier, mais pas s'il en existe d'autres. Vous pouvez filtrer la version .html de la recherche à l'aide de l'option -not .
trouver home/user -name file-sample* -not -name *.html
Linux FIND sans résultats d'erreur
Dans l'exemple de recherche sans récursion, notez qu'il répertorie tous les répertoires dans lesquels il n'a pas pu effectuer de recherche ainsi que le résultat correct. C'est ennuyeux. Empêchons-le d'afficher tous ces répertoires « Autorisation refusée ». Combinez-le avec un autre Commande de terminal Linux, grep. Vous pouvez également utiliser Rechercher avec grep sur trouver des fichiers contenant des mots spécifiques.
find -maxdegree 5 -name file-sample.rtf 2>&1 | grep -v "Autorisation refusée"
Décomposons 2>&1 .
2 – représente stderrqui est l'abréviation de sortie d'erreurs standard.
1 – représente stdoutqui est l'abréviation de sortie standard
> – signifie rediriger la sortie qui se trouve à sa gauche vers celle qui se trouve à sa droite.
& – signifie rassembler.
Donc 2>&1 signifie prendre les erreurs standard et les rediriger, puis les regrouper avec la sortie standard en une seule sortie.
Regardons maintenant | grep -v "Autorisation refusée" .
| (appelé un tube) – indique à Linux de transmettre les résultats de ce qui se trouve à sa gauche à ce qui se trouve à sa droite. Il est transmis à la commande grep.
grep – est un utilitaire de recherche de texte.
-v – indique à grep de rechercher tout ce qui ne correspond pas au texte à gauche de -v. Dans ce cas, il indique à grep de rechercher uniquement tout ce qui ne contient pas le texte ou la chaîne « Autorisation refusée ». Ainsi, grep ne vous montrera que les résultats que vous recherchez et toutes les erreurs qui ne correspondent pas à « Autorisation refusée ».
Exemple de recherche Linux par autorisations
.Pour bien l'utiliser, vous devez apprendre les autorisations Linux.
Les fichiers d'exemple ont tous les autorisations 664, sauf un avec les autorisations 775. Utilisez l'option -perm pour le trouver.
trouver des documents/ -name file-sample* -type f -perm 775
Linux TROUVER par exemple de taille
La recherche de fichiers par taille est pratique pour que ces fichiers volumineux remplissent votre disque dur. Utilisez l'option -size, la taille souhaitée et l'un des suffixes suivants. Si aucun suffixe n'est utilisé, -size est par défaut b . Pour rechercher des fichiers égaux ou supérieurs à une certaine taille, placez le signe plus (+) devant la taille.
M – Mégaoctets
G – Gigaoctets
k – Kilooctets
b – blocs (512 octets – par défaut)
c – octets
w – mots (deux octets ensemble)
trouver -taille +500k
Linux TROUVER par le propriétaire
Il existe deux manières de rechercher des fichiers par propriétaire. L’un concerne le nom d’utilisateur d’un propriétaire et l’autre le groupe de l’utilisateur. Pour rechercher par nom d'utilisateur, utilisez l'option -user , suivie du nom d'utilisateur. Pour rechercher par groupe d'utilisateurs, utilisez -group suivi du nom du groupe..
find -user nom de groupe ou find -user nom d'utilisateur
Fichiers Linux FIND par dernier exemple de modification
Pour rechercher les fichiers qui ont été modifiés ou édités au cours des X derniers jours, utilisez -mtime suivi d'un nombre. En plaçant un signe moins (– ) devant le numéro, tout ce qui a été modifié au cours du nombre de jours écoulés sera détecté. Un signe plus (+ ) signifie qu'il y a autant de jours avant maintenant.
find -name « file-sample* » -mtime +5 (il y a plus de 5 jours)
find -name « file-sample* » -mtime -5 (il y a moins de 5 jours)
Pour rechercher par dernière modification en minutes, utilisez l'option -mmin suivie du nombre de minutes. Utilisez le + et le – comme ci-dessus.
find -name "file-sample*" -mmin -5
find -name "file-sample*" -mmin +5
Exemple de recherche de fichiers Linux par heure du dernier accès
.L'option utilisée pour rechercher des fichiers en fonction de la date de leur dernière ouverture est -atime pour les jours et -amin pour les minutes. Suivez-le avec le nombre de jours ou de minutes pour revenir en arrière et utilisez les signes + et – comme supérieur et inférieur à.
find -name "file-sample*" -atime -5
find -name « file-sample* -amin -5
Combiner FIND avec d'autres commandes Linux
Il y a ci-dessus un exemple d'utilisation de find avec la commande grep, et vous pouvez l'utiliser avec beaucoup d'autres. Vous pouvez voir que l’utilisation de find et d’autres commandes peut être très puissante et permettre un gain de temps considérable. Imaginez devoir supprimer un certain nombre de fichiers d'un type particulier. Au lieu de chercher dans l’explorateur de fichiers, créez simplement la bonne commande, et cela se fait en quelques secondes. Comment allez-vous utiliser la commande find maintenant ?
.