En la línea de comandos de Linux, trabaja con varios tipos de archivos, por ejemplo, directorios, enlaces simbólicos y cosas por el estilo. A veces, el requisito es saber más sobre elementos individuales en una ruta:qué tipo de archivo es, quién es su propietario y más. Afortunadamente, hay una utilidad de línea de comandos de Linux incorporada, llamada namei - que le permite obtener esta información.
En este tutorial, discutiremos los conceptos básicos de namei utilizando algunos ejemplos fáciles de entender. Pero antes de comenzar con eso, vale la pena mencionar que todos los ejemplos aquí se probaron en una máquina con Ubuntu 18.04 LTS.
Linux nombrei comando
El comando namei en Linux sigue un nombre de ruta hasta que se encuentra un punto terminal. La siguiente es su sintaxis:
namei [options] pathname...
Y esto es lo que dice la página del manual sobre esta herramienta:
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.
Los siguientes son algunos ejemplos estilo preguntas y respuestas que le darán una buena idea de cómo funciona el comando namei.
P1. ¿Cómo usar nombrei?
El uso básico es bastante simple, todo lo que tiene que hacer es ejecutar 'namei' seguido de una ruta de línea de comando.
Por ejemplo:
namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Y aquí está el resultado que produjo este comando:
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 página de manual de la herramienta describe en detalle cómo interpretar la salida.
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
Entonces puede ver que el comando namei desglosó todos los elementos en la ruta que le proporcionamos, informándonos sobre su tipo.
P2. ¿Cómo alinear verticalmente la salida de namei?
Esto lo puede hacer usando la opción de línea de comando -v. Por ejemplo:
namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Y aquí está el resultado:
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 compara esto con el resultado que se muestra en la sección anterior, verá que esta vez hay una alineación vertical.
P3. ¿Cómo hacer que namei muestre la información del propietario y del grupo?
Esto se puede hacer usando la opción de línea de comando -o. Por ejemplo:
namei -o /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Aquí está el resultado:
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
Para que pueda ver que la información de propiedad de cada archivo/directorio se muestra en la salida.
P4. ¿Cómo hacer que namei use el formato de salida de lista larga?
Esto se puede hacer usando la opción de línea de comando -l.
namei -l /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Aquí está el resultado:
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
Entonces puede ver que el comando namei produce un comando ls como salida.
P5. ¿Cómo funciona namei con enlaces simbólicos?
Como ya se explicó al principio, el comando namei sigue un enlace simbólico por defecto. Por ejemplo, en mi sistema, 'enlace1' es un enlace simbólico a un archivo 'archivo1', por lo que pasé la ruta 'enlace1' como entrada a namei de la siguiente manera:
namei /home/himanshu/link1
Luego se produjo el siguiente resultado:
f: /home/himanshu/link1
d /
d home
d himanshu
l link1 -> file1
- file1
Entonces puede ver que el comando namei muestra claramente el tipo de archivo 'archivo1'. Sin embargo, si lo desea, puede obligar a la herramienta a no seguir enlaces simbólicos, algo que puede hacer utilizando la opción de línea de comando -n.
namei -n /home/himanshu/link1
Aquí está el resultado en este caso:
f: /home/himanshu/link1
d /
d home
d himanshu
l link1 -> file1
Entonces puede ver que la herramienta no siguió el enlace simbólico en este caso.
Conclusión
El comando namei es particularmente útil en el caso de elementos de enlace simbólico anidados en la ruta. Aquí, en este tutorial, hemos discutido la mayoría de las opciones de línea de comandos que ofrece esta herramienta. Una vez que haya terminado de practicar estos, diríjase a la página de manual de la herramienta para obtener más información al respecto.