Sur la ligne de commande Linux, vous travaillez avec plusieurs types de fichiers, par exemple, des répertoires, des liens symboliques, etc. Parfois, l'exigence est d'en savoir plus sur les éléments individuels d'un chemin - de quel type de fichier il s'agit, qui en est le propriétaire, etc. Heureusement, il existe un utilitaire de ligne de commande Linux intégré - appelé namei - qui vous permet de récupérer ces informations.
Dans ce didacticiel, nous aborderons les bases de namei à l'aide d'exemples faciles à comprendre. Mais avant de commencer, il convient de mentionner que tous les exemples ici ont été testés sur une machine Ubuntu 18.04 LTS.
Commande nomi Linux
La commande namei sous Linux suit un nom de chemin jusqu'à ce qu'un point terminal soit trouvé. Voici sa syntaxe :
namei [options] pathname...
Et voici ce que dit la page de manuel à propos de cet outil :
namei interprets its arguments as pathnames to any type of Unix file
(symlinks, files, directories, and so forth). namei then follows each
pathname until an endpoint is found (a file, a directory, a device
node, etc). If it finds a symbolic link, it shows the link, and starts
following it, indenting the output to show the context.
This program is useful for finding "too many levels of symbolic links"
problems.
Voici quelques exemples de style Q&A qui devraient vous donner une bonne idée du fonctionnement de la commande namei.
Q1. Comment utiliser namei ?
L'utilisation de base est assez simple, tout ce que vous avez à faire est d'exécuter 'namei' suivi d'un chemin de ligne de commande.
Par exemple :
namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Et voici le résultat produit par cette commande :
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
d /
d home
d himanshu
d Downloads
d HTF-review
d Nodejs-Docker
- 1.png
La page de manuel de l'outil décrit en détail comment interpréter la sortie.
For each line of output, namei uses the following characters to identify the file type found:
f: = the pathname currently being resolved
d = directory
l = symbolic link (both the link and its contents are output)
s = socket
b = block device
c = character device
p = FIFO (named pipe)
- = regular file
? = an error of some kind
Ainsi, vous pouvez voir que la commande namei a décomposé tous les éléments du chemin que nous lui avons fourni, nous informant de leur type.
Q2. Comment aligner verticalement la sortie namei ?
Vous pouvez le faire en utilisant l'option de ligne de commande -v. Par exemple :
namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Et voici le résultat :
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
d /
d home
d himanshu
d Downloads
d HTF-review
d Nodejs-Docker
- 1.png
Si vous comparez cela avec le résultat affiché dans la section précédente, vous verrez qu'il y a un alignement vertical cette fois-ci.
Q3. Comment faire en sorte que namei affiche les informations sur le propriétaire et le groupe ?
Cela peut être fait en utilisant l'option de ligne de commande -o. Par exemple :
namei -o /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Voici le résultat :
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
d root root /
d root root home
d himanshu himanshu himanshu
d himanshu himanshu Downloads
d himanshu himanshu HTF-review
d himanshu himanshu Nodejs-Docker
- himanshu himanshu 1.png
Ainsi, vous pouvez voir que les informations de propriété de chaque fichier/répertoire sont affichées dans la sortie.
Q4. Comment faire en sorte que namei utilise le format de sortie de liste longue ?
Cela peut être fait en utilisant l'option de ligne de commande -l.
namei -l /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Voici le résultat :
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x himanshu himanshu himanshu
drwxr-xr-x himanshu himanshu Downloads
drwxr-xr-x himanshu himanshu HTF-review
drwxr-xr-x himanshu himanshu Nodejs-Docker
-rw-rw-r-- himanshu himanshu 1.png
Vous pouvez donc voir qu'une commande ls telle qu'une sortie est produite par la commande namei.
Q5. Comment namei fonctionne avec les liens symboliques ?
Comme déjà expliqué au début, la commande namei suit par défaut un lien symbolique. Par exemple, sur mon système, 'link1' est un lien symbolique vers un fichier 'file1', j'ai donc passé le chemin 'link1' comme entrée à namei de la manière suivante :
namei /home/himanshu/link1
Ensuite, la sortie suivante a été produite :
f: /home/himanshu/link1
d /
d home
d himanshu
l link1 -> file1
- file1
Ainsi, vous pouvez voir que la commande namei indique clairement le type de fichier 'file1'. Cependant, si vous le souhaitez, vous pouvez forcer l'outil à ne pas suivre les liens symboliques, ce que vous pouvez faire en utilisant l'option de ligne de commande -n.
namei -n /home/himanshu/link1
Voici le résultat dans ce cas :
f: /home/himanshu/link1
d /
d home
d himanshu
l link1 -> file1
Vous pouvez donc voir que l'outil n'a pas suivi le lien symbolique dans ce cas.
Conclusion
La commande namei est particulièrement utile dans le cas d'éléments de liens symboliques imbriqués dans le chemin. Ici, dans ce tutoriel, nous avons discuté de la majorité des options de ligne de commande offertes par cet outil. Une fois que vous avez fini de vous entraîner, rendez-vous sur la page de manuel de l'outil pour en savoir plus.