¿Eres un nuevo usuario de Linux? ¿Su trabajo proporciona un script de shell? Si su respuesta a ambas preguntas es afirmativa, es probable que la herramienta que analizaremos aquí le interese. Nombre de la herramientadirnamey esta herramienta se usa principalmente en situaciones en las que necesita eliminar el último componente de un nombre de archivo absoluto.
En este artículo, discutiremos la base de dirname, así como también cómo puede usarlo. Pero antes de hacerlo, debe saber que todos los ejemplos/instrucciones mencionados aquí han sido probados en Ubuntu 16.04 LTS.
Comando Dirname en Linux
La siguiente es la sintaxis general para el comando dirname:
dirname [OPTION] NAME ...
Así es como la página del manual describe este comando:
Вывод ИМЕНИ с его последним компонентом без косой черты и задними косыми чертами; если имя не содержит /'s, выводиться '.' (то есть текущий каталог).
Los siguientes ejemplos le darán una mejor idea de cómo puede utilizar esta herramienta.
Q1. ¿Durante cuánto tiempo funciona el comando dirname?
El uso principal de esta herramienta es simplemente escribir el nombre del comando seguido del nombre de archivo absoluto. En la salida, obtiene el árbol de directorios completo, excluyendo el nombre del archivo.
Aquí hay un ejemplo:
[email protected]:~# dirname /etc/cron.d/awstats /etc/cron.d
Q2. ¿Puede funcionar con varios directorios?
Sí, claro. Todo lo que tiene que hacer es proporcionar el nombre de archivo absoluto, uno por uno. El siguiente ejemplo muestra esto:
[email protected]:~# dirname /etc/cron.d/awstats /etc/nginx/nginx.conf /etc/nginx/vhosts/andreyex/andreyex.ru.conf /etc/cron.d /etc/nginx /etc/nginx/vhosts/andreyex
Q3. ¿Qué sucede si el nombre del archivo es un nombre absoluto?
Si solo se especifica un nombre de archivo (y no uno absoluto, completo con un árbol de directorios), entonces se muestra un punto (.) en la salida:
[email protected]:/etc/nginx/vhosts/andreyex# dirname andreyex.ru.conf .
Si observa la descripción de la página de manual para el comando (mencionado al principio), este comportamiento se indica claramente allí.
Q4. ¿Cómo puedo reemplazar el carácter de nueva línea con NUL en la salida?
De forma predeterminada, las líneas en la salida están separadas por una nueva línea, como se desprende de la pregunta 2 anterior. Sin embargo, si lo desea, puede tener una salida separada por NUL. Para hacer esto, use el parámetro de línea de comando-z…
Usando esta línea de comando como ejemplo, la opción está en acción:
[email protected]:/etc/nginx/vhosts/andreyex# dirname -z /etc/cron.d/awstats /etc/nginx/nginx.conf /etc/nginx/vhosts/andreyex/andreyex.ru.conf /etc/cron.d/etc/nginx/etc/nginx/vhosts/[email protected]:/etc/nginx/vhosts/andreyex#
Tenga en cuenta que la salida de los resultados ya no está separada entre sí por una nueva línea.
Conclusión
El comando dirname puede no ser tan elegante como algunos de los otros comandos de Linux, pero sería correcto decir que es una gran herramienta que puede resultar útil cuando se trabaja con scripts de shell. Todo lo que hemos discutido aquí es prácticamente todo lo que sugiere la herramienta. En caso de que tenga alguna duda o consulta, por favor deje un comentario a continuación.