La recherche de fichiers et de répertoires est relativement simple avec les moteurs de recherche actuels intégrés dans les gestionnaires de fichiers, mais parfois nous aimerions mieux utiliser le terminal, ou nous n'avons pas d'autre choix que d'utiliser le terminal car nous n'avons pas d'environnement graphique. Pour cela, J'ai trouvé intéressant de revoir trouver, une commande bien connue, mais quelque chose d'oubli par l'utilisation massive des environnements graphiques.
Eh bien, trouver, comme son nom l'indique, est inutile pour autre chose que pour localiser les fichiers, bien qu'il ait d'autres alternatives telles que localiser, etc., nous nous concentrerons sur find, car il est assez puissant et nous permet de nombreuses options intéressantes pour mener à bien notre recherche. Si nous l'utilisons tel quel, sans aucune option, ce qu'il fera est de lancer une liste similaire à celle que nous obtiendrions avec un ls, du contenu d'un répertoire entier (et des sous-répertoires).
Mais ce n'est pas ce qui nous intéresse, ce que nous voulons, c'est personnaliser et affiner un peu plus la recherche pour être plus précis et nous aider à trouver ce que nous recherchons vraiment. Pour comprendre comment cela fonctionne, je pense qu'il n'y a pas de meilleur moyen que de montrer des exemples pratiques de trouvaille:
- Rechercher par nom, nous pouvons utiliser l'option ou les critères de recherche «-nom». Par exemple, le premier exemple recherche les fichiers / répertoires dont le nom commence par "musi", le second qui se termine par "eon" et le dernier qui contient le mot "found" dans le répertoire racine /:
find / -name "musi*" find / -name "*eon" find / -name "fundar"
- Il existe une option appelée -type, qui peut servir de filtre et peut être utilisée avec -name. Dans ce cas, il sert à spécifier le type de fichier à rechercher. Avec B, nous recherchons des fichiers spéciaux en mode bloc, avec C pour les fichiers spéciaux en mode caractère, D pour les répertoires, F pour les fichiers ordinaires, L pour les liens symboliques, P pour le tube nommé et S pour la connexion Socket ou réseau. Par exemple, supposons que vous souhaitiez rechercher un répertoire qui a "bonjour" à la fin de son nom et dans le répertoire Accueil / utilisateur:
find /Home/usuario -name "*hola" -type D
- Nous pouvons aussi recherche par utilisateur ou par groupe auquel il appartient un répertoire ou des fichiers sur le système. Pour cela, nous pouvons utiliser les critères -user et -group. Imaginez maintenant que vous vouliez trouver un fichier contenant «.mp3» de l'utilisateur «Rosa» et le groupe «Chats» dans le répertoire Téléchargements:
find /Descargas -name ".mp3" -user Rosa -group Gatos
- La taille peut nous aider à rechercher par taille. Dans ce cas, nous avons différentes options à appliquer. Un B indiquerait le bloc, si la taille n'est pas indiquée, par défaut, elle sera de 512 octets. C pour les caractères ASCII de 1 octet, W pour les (anciens) mots de 2 octets et K pour les kilo-octets ou 1024 octets. Par exemple, si nous voulons rechercher dans / pour un fichier de 2560 octets (5 blocs · 512), un autre de 10 caractères ASCII, un autre de 100 Ko, un de moins de 5 Mo et un autre de plus de 30 Ko:
find / -size 5 find / -size 10c find / -size 100K find / -size -5000K find / -size +30K
Bien sûr, -size serait combinable avec tous les critères de recherche antérieur et postérieur, nous obtiendrons ainsi des résultats encore plus précis ...
- Vous pouvez même recherche par critères temporels. Avec -atime, vous pouvez rechercher par la date du dernier accès. -mheure par date de modification du contenu et -heure par date de dernière modification de l'inode. Par exemple, nous voulons rechercher dans / Home, un répertoire appelé "hello", appartenant à l'utilisateur "Zaca" et qui a été modifié il y a moins de 3 jours:
find /Home -name "hola" -user Zaca -mtime -3
- Il y a plus de critères recherche telle que -perm pour rechercher des autorisations d'accès ou des permissions, -links pour rechercher des liens physiques, -inum pour le numéro d'inode. Allons-y avec notre dernier exemple, dans ce cas, nous chercherons un répertoire dans le répertoire courant dont les permissions sont totales pour l'utilisateur propriétaire et le groupe, et l'exécution pour le reste:
find -type d -perm 771
Parfois, nous ignorons le potentiel du terminal et utilisons d'autres outils qui peuvent ne pas permettre la flexibilité de ce qui est déjà inné. J'espère donc avoir aidé quelque chose avec cet humble article. Amusez-vous et laissez vos commentaires...
Je ne suis pas amusé, mais ça m'a un peu aidé