GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rechercher des fichiers à partir du terminal sous Linux

Bien qu'il existe de nombreuses façons de rechercher et de localiser des fichiers et des répertoires sous Linux, la plus simple et la plus rapide est probablement via le terminal. Cependant, peu d'utilisateurs de Linux le savent, ce qui entraîne une frustration inutile. Voici un guide rapide qui, espérons-le, vous aidera à localiser ce que vous recherchez dans votre système.

Utiliser la commande Localiser

Le "localiser ” est le premier recours qu'un utilisateur Linux devrait utiliser car il est beaucoup plus rapide que tout ce qui existe. La raison de cette vitesse inégalée est que la commande de localisation ne recherche pas réellement sur vos disques durs locaux les fichiers ou les répertoires que vous devez rechercher, mais lit plutôt le fichier de base de données mlocate.db qui contient tous les chemins de fichiers de votre système. .

Si vous n'avez pas encore installé locate, utilisez ces commandes :

Debian et Ubuntu

sudo apt-get install locate

CentOS

yum install locate

Préparer la commande de localisation pour la première utilisation

Pour mettre à jour la base de données mlocate.db avant la première utilisation, exécutez :

sudo updatedb

Pour utiliser locate, ouvrez un terminal et tapez locate suivi du nom de fichier que vous recherchez. Dans cet exemple, je recherche des fichiers contenant le mot "ensoleillé" dans leur nom.

locate sunny

Locate peut également vous dire combien de fois un mot-clé de recherche est trouvé dans la base de données. Ceci est réalisé en incluant un paramètre "-c" dans la commande, qui signifie "count".

locate -c sunny

Ce que les utilisateurs doivent garder à l'esprit ici, c'est que "localiser" a besoin du nom spécifique et exact du fichier que vous recherchez, contrairement à d'autres outils plus flexibles. Cela signifie que la localisation est idéale pour trouver quelque chose dont vous êtes sûr du nom, mais pas si efficace lorsque vous ne vous souvenez pas exactement du nom du fichier.

locate howtoforge

contre

locate Howtoforge

De plus, et puisque "localiser ” lit un fichier de base de données, les résultats peuvent être obsolètes et pas tout à fait vrais. Pour atténuer ce problème, vous pouvez mettre à jour votre base de données de chemins de fichiers en tapant "sudo updatedb ” sur une session de terminal.

Jetez un œil ici pour plus d'exemples d'utilisation de la commande de localisation.

Si après cela vous n'obtenez toujours pas ce que vous cherchiez, ou si vous êtes simplement submergé par le nombre de résultats, passez à l'étape suivante qui est la commande "rechercher".

Utiliser la commande Rechercher

Le "trouver ” est un utilitaire de recherche beaucoup plus puissant mais aussi plus lent. En effet, contrairement à la commande "locate", "find" recherche en fait sur vos disques les fichiers et répertoires recherchés par l'utilisateur. Find est parfait lorsque vous essayez de localiser un fichier ou un répertoire mais que vous ne vous souvenez pas de son nom, car "find" peut rechercher des fichiers appartenant à un certain utilisateur ou groupe d'utilisateurs, des fichiers qui ont été modifiés ou accédés récemment, les fichiers d'une plage de taille spécifique, les fichiers cachés, les exécutables, les fichiers en lecture seule et les fichiers avec certaines autorisations. La meilleure partie est qu'un utilisateur est libre de combiner plusieurs des critères ci-dessus dans une seule commande "rechercher", ce qui réduit essentiellement les résultats.

En parlant de rétrécissement, la première chose que vous voulez faire lorsque vous exécutez "find" est de lui dire de rechercher dans un répertoire spécifique. Cela accélérera considérablement le processus de recherche, mais toujours en fonction de la taille du répertoire. Si vous savez où se trouve le fichier, ouvrez le terminal, accédez au répertoire et exécutez « find . [nom de fichier] ”. Ce point indique à find de rechercher dans le répertoire courant. Si vous souhaitez rechercher votre répertoire personnel à la place, remplacez le point par "~/", et si vous souhaitez rechercher l'ensemble de votre système de fichiers, utilisez "/" à la place.

Par exemple, je souhaite rechercher un fichier contenant une affiche dans mon répertoire de téléchargement. Je sais que le nom du fichier contient le mot "poster", mais je ne me souviens pas exactement du nom. Pour cette raison, je naviguerais vers mon dossier de téléchargement via le terminal avec "cd Downloads", puis entrerais la commande :

sudo find . -name "*poster*"

Voici le résultat :

Cela me dit qu'il y a un fichier pdf nommé "copie billy_poster" dans le dossier Téléchargements. Si je ne savais pas où il se trouvait, "trouver" me permettrait quand même de savoir qu'il se trouve dans le dossier Téléchargements si je cherchais dans un répertoire parent.

Maintenant, si je remplace le paramètre "-name" par "-iname", je pourrais obtenir des résultats sans tenir compte de la casse. C'est quelque chose qui n'est pas là dans "localiser", donc un autre élément utile lorsque vous n'êtes pas sûr du nom de fichier.

sudo find . -iname "*poster*"

Supposons maintenant que je recherche toujours le même fichier affiche et que la seule chose dont je me souvienne est qu'il fait moins de 5 Mo. La commande que j'utiliserais dans ce cas est :

find ~/ -size -5M

Si je savais que c'est plus élevé que disons 2 Mo, la commande serait "find ~/ -size +2M". La meilleure partie est que find prend en charge les opérateurs booléens pour rendre la recherche encore plus puissante. Pour cet exemple, j'utiliserai une commande qui combine ma connaissance que le fichier a une taille inférieure à 5 mégaoctets, et également plus de 2. La commande pour cela serait :

find / -size -5M -and -size +2M

Enfin, suggérons que nous ne nous souvenions de rien du fichier, mais que nous nous souvenions que nous y avons accédé il y a trois minutes. Pour le trouver, utilisez la commande find comme :

find / -amin -3

Ce serait "find / -amin -30" pendant une demi-heure, et "-amin -120" pendant deux heures, etc. Si vous avez accédé au fichier il y a deux jours, utilisez ceci à la place :

find / -time -2

Cela affichera tous les fichiers consultés au cours des deux derniers jours à l'emplacement de la recherche.

Je pense que ce qui précède couvre la plupart des scénarios de cas d'utilisation habituels. Pour plus d'informations sur la puissante commande "find", ouvrez un terminal et tapez "man find". Bonne chance pour trouver ce que vous cherchez.

Plus d'exemples de commande de recherche Linux peuvent être trouvés ici.


Linux
  1. Comment rechercher sur le Web à partir d'un terminal sous Linux

  2. Rechercher rapidement des fichiers sous Linux avec la commande Locate

  3. Comment utiliser la commande Rsync sous Linux ?

  4. Migrer un serveur Linux depuis la ligne de commande

  5. La commande locate sous Linux

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

Gestion de fichiers Linux depuis le terminal

Comment gérer les fichiers depuis le terminal Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Comment ouvrir une URL dans le navigateur Web à partir du terminal Linux

Comment se connecter au WiFi depuis le terminal dans Ubuntu Linux