Files
abonnel-www/4d07d121-71ed-4296-908b-d2dc6b04df00/index.md
T
2026-05-17 09:47:35 +02:00

4.5 KiB

apropos

À quoi ça sert ?

Vous cherchez une commande mais vous ne vous souvenez plus de son nom ? Vous savez ce que vous voulez faire, mais pas comment l'appeler ? C'est exactement le rôle d'apropos.

La commande apropos recherche dans les noms et les descriptions courtes des pages du manuel système (les pages man) tous les mots-clés passés en arguments. C'est l'équivalent de man -k.

Bon à savoir : apropos ne fouille pas le contenu complet des pages de manuel, seulement la ligne NAME (nom + description courte). Pour une recherche dans le corps des pages, il faut se tourner vers d'autres outils comme man -K (avec un K majuscule).

Un premier exemple

Cherchons toutes les commandes liées à la copie :

$ apropos copy
debconf-copydb (1)        - copier une base de données debconf
bcopy (3)                 - copy byte sequence
copy_file_range (2)       - Copy a range of data from one file to another
copysign (3)              - copy sign of a number
cp (1)                    - copy files and directories
cpio (1)                  - copy files to and from archives
dd (1)                    - convert and copy a file
rsync (1)                 - a fast, versatile, remote (and local) file-copying tool
scp (1)                   - secure copy (remote file copy program)
...

Comprendre la sortie

Chaque ligne suit le format : commande (section) - description.

Le numéro entre parenthèses correspond à la section du manuel :

Section Contenu
1 Commandes utilisateur (shell)
2 Appels système (kernel)
3 Fonctions de bibliothèque (C, etc.)
4 Fichiers spéciaux (/dev/...)
5 Formats de fichiers et conventions
6 Jeux
7 Divers (protocoles, conventions)
8 Commandes d'administration

Cette numérotation explique pourquoi on voit dans l'exemple à la fois cp (1) (la commande shell) et copy_file_range (2) (l'appel système). Pas pratique quand on cherche juste une commande à taper dans son terminal…

Les astuces utiles

Limiter la recherche à une section

Pour n'afficher que les commandes du shell (section 1), utilisez l'option -s :

$ apropos -s 1 copy
cp (1)        - copy files and directories
cpio (1)      - copy files to and from archives
dd (1)        - convert and copy a file
rsync (1)     - a fast, versatile, remote (and local) file-copying tool
scp (1)       - secure copy (remote file copy program)
...

Beaucoup plus lisible ! Vous pouvez aussi cibler la section 8 pour les commandes d'admin, ou la section 2 si vous codez en C et cherchez un appel système.

Rechercher avec plusieurs mots-clés (ET logique)

Par défaut, la recherche de plusieurs mots-clés est conditionnée par un OU logique. La commande apropos copy file retourne donc les pages contenant copy ou file — autant dire la moitié du manuel.

Pour exiger que tous les mots-clés soient présents, utilisez -a (comme and) :

$ apropos -s 1 -a copy file
cp (1)            - copy files and directories
cpio (1)          - copy files to and from archives
dd (1)            - convert and copy a file
install (1)       - copy files and set attributes
mcopy (1)         - copy MSDOS files to/from Unix
rcp (1)           - secure copy (remote file copy program)
rsync (1)         - a fast, versatile, remote (and local) file-copying tool
scp (1)           - secure copy (remote file copy program)

Rechercher avec une expression régulière

Pour des recherches plus fines, l'option -r (activée par défaut sur la plupart des distributions) permet d'utiliser une regex :

$ apropos '^cp'        # commandes commençant par "cp"
$ apropos 'copy|move'  # contenant "copy" ou "move"

L'option -w permet à l'inverse d'utiliser des jokers shell (*, ?).

« apropos: nothing appropriate » ?

Si apropos ne trouve rien alors que vous êtes sûr·e que la commande existe, c'est probablement que la base de données des pages de manuel n'est pas à jour. apropos ne lit pas les pages à la volée : il interroge un index pré-construit.

Pour le régénérer :

$ sudo mandb

C'est typiquement le cas après l'installation d'un nouveau paquet sur certains systèmes minimaux (conteneurs Docker, par exemple).

Pour aller plus loin

  • whatis commande : affiche uniquement la description courte d'une commande précise (recherche exacte sur le nom)
  • man -k : strictement équivalent à apropos
  • man -K : recherche dans le contenu complet des pages (beaucoup plus lent)