dirname
es un programa de computadora estándar en Unix y sistemas operativos similares a Unix . Cuando dirname
se le da un nombre de ruta , eliminará cualquier sufijo que comience con el último carácter de barra inclinada ( '/'
) y devolverá el resultado. dirname
se describe en la Especificación Única de UNIX y se utiliza principalmente en scripts de shell .
![]() Ejemplo de dirnamecomando | |
Desarrollador (es) | Varios desarrolladores comerciales y de código abierto |
---|---|
Sistema operativo | Unix , similar a Unix , IBM i |
Plataforma | Multiplataforma |
Tipo | Mando |
Licencia | coreutils : GPLv3 + |
Historia
La versión de coreutilsdirname
incluida en GNU fue escrita por David MacKenzie y Jim Meyering. [1]
El comando dirname también se ha trasladado al sistema operativo IBM i . [2]
Uso
La Especificación Única de UNIX para dirname
es:
cadena de nombre de directorio
- cuerda
Ejemplos de
dirname recuperará el nombre de la ruta del directorio de un nombre de ruta ignorando las barras diagonales finales
$ dirname /home/martin/docs/base.wiki / home / martin / docs$ dirname / home / martin / docs /./ home / martin / docs$ dirname / home / martin / docs / / home / martin$ dirname base.wiki .$ dirname / /
Actuación
Dado que dirname
acepta solo un operando, su uso dentro del ciclo interno de los scripts de shell puede ser perjudicial para el rendimiento. Considerar
mientras lee el archivo ; hacer dirname " $ archivo " hecho
El extracto anterior provocaría una invocación de proceso independiente para cada línea de entrada. Por esta razón, la sustitución de shell se suele utilizar en su lugar
echo " $ { archivo % / * } " ;
o si los nombres de ruta relativos también deben manejarse
if [ -n " $ { archivo ## * / * } " ] ; luego echo "." si no, echo " $ { archivo % / * } " ; fi
Tenga en cuenta que estos manejan las barras diagonales finales de manera diferente a dirname.
Conceptos erróneos
Podríamos pensar que las rutas que terminan en una barra inclinada son un directorio. Pero en realidad, la barra inclinada representa todos los archivos dentro del directorio.
/ home / martin / docs /.
La forma correcta de representar una ruta como directorio es con una barra diagonal y un punto. [ según quién? ] [ cita requerida ]
Ver también
Referencias
- ^ https://linux.die.net/man/1/dirname
- ^ IBM . "IBM System i Versión 7.2 Programación Qshell" (PDF) . Consultado el 5 de septiembre de 2020 .
enlaces externos
- Especificación única de UNIX , Número 7 de The Open Group : devuelve la parte del directorio de un nombre de ruta - Referencia de comandos y utilidades,
- Manual de comandos de usuario de Linux -
- Manual de comandos generales de OpenBSD -