La commande find
La commande find permet de rechercher un ou plusieurs fichiers selon les critères de recherche de notre choix
Par exemple, voici une commande qui permet d’afficher tous les fichiers contenant le mot toto :
root@debian-cours:/home/debianos/exercices# find / -name
toto/home/debianos/exercices/toto
une autre commande qui permet d’afficher tous les fichiers qui ont été modifié ces 3 derniers jours:
Find / -mtime +3
Voir fichier appartenant à tel user :
Find / -user nom_user
Afficher seulement les fichiers : -type f
Seulement les directories : -type d
Exécuter une commande sur les fichiers retournés : -exec commande {} \;
Exemple :
find /home/debianos -user debianos -type f -exec ls -l {} \;
-rw-r--r--. 1 testos testos 18 8 août 2019 /home/debianos/.bash_logout
-rw-r--r--. 1 testos testos 193 8 août 2019 /home/debianos/.bash_profile
-rw-r--r--. 1 testos testos 231 8 août 2019 /home/debianos/.bashrc
-rw-r--r--. 1 testos testos 334 30 oct. 2018 /home/debianos/.emacs
-rw-------. 1 testos testos 134 18 févr. 20:46 /home/debianos/.bash_history
La commande find possède pas mal de paramètres qui permettent de faire des recherches avancé ainsi que d’éxecuter des tâches directement sur les fichiers retourné. Ce qui en fait une commande très complète.
Locate
La commande locate est plus rapide (résultat immédiat) et convient aux recherche simple.
Elle n’est généralement pas automatiquement installé, le packet à installé se nomme mlocate
Commande pour installer locate pour les OS Ubuntu / Debian :
apt-get install mlocate
Commande pour installer locate pour les OS Red Hat / Centos :
yum install mlocate
locate s’utilise très simplement en lançant : locate « nom_du_fichier »
Une fois installé vous devez lancer : updatedb , qui mettra la commande locate à jour.
Par exemple si je souhaite rechercher mon fichier send_mail (script qui envoi mail sous python) :
babidi@Babidi-ubuntu:~$ locate send_mail
/home/babidi/mes_scripts/bash/mail/send_mail.sh
Rechercher tous les fichiers .pdf :
babidi@Babidi-ubuntu:~$ locate '.pdf'
/home/babidi/1494870C-9912-C184-4CC9-B401-A53F4D8DE290.pdf
/home/babidi/PDFSigQFormalRep.pdf
...
whereis
La commande whereis linux affiche le chemin du bin, des fichiers de configuration et la documentation.
Par exemple si je l’utilise pour ssh :
babidi@Babidi-ubuntu:~$ whereis ssh
ssh: /usr/bin/ssh /etc/ssh /usr/share/man/man1/ssh.1.gz
which
La commande which recherche une commande dans le PATH (chemin des exécutables) et vous fournit la première qu’elle trouve
Petit exemple pour retrouver le binaire de sftp
babidi@Babidi-ubuntu:~$ which sftp
/usr/bin/sftp
apropos
La commande apropos donnes des infos sur la commande / le service, exemple :
babidi@Babidi-ubuntu:~$ apropos sftp
fzputtygen (1) - SFTP private key converter of FileZilla
fzsftp (1) - SFTP connection handler of FileZilla
sftp (1) - OpenSSH secure file transfer
info
Info: donne la documentation d’une commande, ces info se trouve dans /usr/share/info
Commande dans info :
- P = page précédente
- N = page suivante
- T : entrer un titre présent dans le menu
Je te montre ici les les commandes de recherche que j’utilise généralement mais il en existe d’autres. N’hésites pas à compléter ces commandes en commentaire ⬇️