Tutorial de comandos namei de Linux para principiantes (5 ejemplos)

En la línea de comandos de Linux, trabajas con varios tipos de archivos, por ejemplo, directorios, enlaces simbólicos y cosas así. A veces, es necesario saber más sobre los elementos individuales de una ruta: qué tipo de archivo es, quién es su propietario, y más. Afortunadamente, existe una utilidad de línea de comandos incorporada en Linux -denominada namei- que te permite obtener esta información.

En este tutorial, hablaremos de los fundamentos de namei utilizando algunos ejemplos fáciles de entender. Pero antes de empezar, cabe mencionar que todos los ejemplos aquí se han probado en una máquina Ubuntu 18.04 LTS.

El comando namei de Linux

El comando namei en Linux sigue un nombre de ruta hasta encontrar un punto de la terminal. A continuación se muestra su sintaxis:

namei [options] pathname...

Y esto es lo que dice la página man 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.

A continuación hay algunos ejemplos al estilo de las preguntas y respuestas que deberían darte una buena idea de cómo funciona el comando namei.

Q1. ¿Cómo se utiliza namei?

El uso básico es bastante sencillo, todo lo que tienes que hacer es ejecutar ‘namei’ seguido de una ruta en la línea de comandos.

Por ejemplo:

namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

Y esta es la salida que produce 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 man de la herramienta describe con 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

Así puedes ver que el comando namei desglosó todos los elementos de la ruta que le proporcionamos, informándonos de su tipo.

Q2. ¿Cómo alinear verticalmente la salida de namei?

Puedes hacerlo utilizando la opción de línea de comandos -v. Por ejemplo:

namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

Y esta es la salida:

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 lo comparas con la salida mostrada en la sección anterior, verás que esta vez hay una alineación vertical.

Q3. ¿Cómo hacer que namei muestre la información del propietario y del grupo?

Esto se puede hacer utilizando la opción de línea de comandos -o. Por ejemplo:

namei -o /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

Esta es la salida:

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

Así puedes ver que la información de propiedad de cada archivo/directorio se muestra en la salida.

Q4. ¿Cómo hacer que namei utilice un formato de salida de listado largo?

Esto puede hacerse utilizando la opción de línea de comandos -l.

namei -l /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

Aquí tienes la salida:

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

Así puedes ver que el comando namei produce una salidasimilar a la del comando ls.

Q5. ¿Cómo funciona namei con los enlaces simbólicos?

Como ya hemos explicado al principio, el comando namei sigue por defecto un enlace simbólico. Por ejemplo, en mi sistema, ‘enlace1’ es un enlace simbólico a un archivo ‘archivo1’, así que pasé la ruta de ‘enlace1’ como entrada a namei de la siguiente manera:

namei /home/himanshu/link1

Entonces se produjo la siguiente salida:

f: /home/himanshu/link1
 d /
 d home
 d himanshu
 l link1 -> file1
   - file1

Así que puedes ver que el comando namei mostró claramente el tipo de archivo que es ‘archivo1’. Sin embargo, si quieres, puedes forzar a la herramienta a no seguir los enlaces simbólicos, algo que puedes hacer utilizando la opción de línea de comandos -n.

namei -n /home/himanshu/link1

Aquí tienes la salida en este caso:

f: /home/himanshu/link1
 d /
 d home
 d himanshu
 l link1 -> file1

Así puedes ver que la herramienta no siguió el enlace simbólico en este caso.

Conclusión

El comando namei es especialmente útil en el caso de elementos de enlace simbólico anidados en la ruta. Aquí, en este tutorial, hemos hablado de la mayoría de las opciones de línea de comandos que ofrece esta herramienta. Cuando hayas terminado de practicarlas, dirígete a lapágina man de la herramientapara saber más sobre ella.

También te podría gustar...