stringtranslate.com

nombredirectorio

dirnamees un programa informático estándar en sistemas operativos Unix y similares . Cuando se le proporciona una ruta de acceso , eliminará cualquier sufijo que comience con el último carácter de barra ( ) y devolverá el resultado. se describe en la Especificación Única de UNIX y se utiliza principalmente en scripts de shell .dirname'/'dirname

Historia

La versión dirnameincluida en GNU coreutils fue escrita por David MacKenzie y Jim Meyering. [1] El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes de GNU similares a Unix. [2] El comando dirname también ha sido portado al sistema operativo IBM i . [3]

Uso

La especificación única de UNIX es dirname:

cadena de nombre de directorio
string
Un nombre de ruta

$ nombre_directorio /home/martin/docs/base.wiki /home/martin/docs

$ nombre_directorio /home/martin/docs/. /home/martin/docs $ nombre_directorio /home/martin/docs/ /home/martin $ nombre_directorio base.wiki . $ nombre_directorio / /

Actuación

Dado que dirnamesolo acepta un operando, su uso dentro del bucle interno de los scripts de shell puede ser perjudicial para el rendimiento.

 mientras lee archivo ; hacer dirname " $file " hecho < alguna-entrada        

El extracto anterior provocaría una invocación de proceso independiente para cada línea de entrada. Por este motivo, normalmente se utiliza la sustitución de shell en su lugar.

 echo " ${ archivo %/* } " ; 

o si también es necesario gestionar rutas relativas

 si [ -n " ​​${ archivo ##*/* } " ] ; entonces echo "." de lo contrario 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 diagonal final son un directorio, pero en realidad la barra diagonal final representa todos los archivos dentro del directorio.

/inicio/martin/docs/.

La forma correcta de representar una ruta como directorio es con una barra diagonal final y un punto. [ ¿según quién? ] [ cita requerida ]

Véase también

Referencias

  1. ^ "Dirname(1) - Página de manual de Linux".
  2. ^ "Puertos Win32 nativos de algunas utilidades GNU". unxutils.sourceforge.net .
  3. ^ IBM . «Programación Qshell para IBM System i versión 7.2» (PDF) . IBM . Archivado (PDF) del original el 18 de septiembre de 2020 . Consultado el 5 de septiembre de 2020 .

Enlaces externos