¿Hay un comando como namei para OS X?

10

Estoy revisando algunos problemas de permisos incorrectos y descubrí el comando namei para Linux. Homebrew actualmente no tiene un puerto Mac.

namei: siga un nombre de ruta hasta encontrar un punto terminal

¿Hay un comando o una serie de comandos que se pueden usar para lograr lo mismo en OS X?

phatblat
fuente

Respuestas:

7

Puede descargar el código fuente nameide SourceForge . Para compilar, debe eliminar la #include <sys/sysmacros.h>línea stat.cy luego ejecutarla make.

Tata Dias
fuente
Gracias, no sabía que la versión en util-linux estaba basada en la de SourceForge. Eventualmente descubrí cómo compilar el util-linux, pero viene con muchas otras utilidades, muchas de las cuales son redundantes en OS X. De todos modos, vea mi respuesta actualizada para la fórmula homebrew del original. Tenga cuidado, la instalación desde la fuente con make installpuede causar problemas si /usr/local/bin' is ahead of / usr / bin` en su RUTA a medida que se instala está vinculado stat. La fórmula evita esto y solo se instala bajo namei.
Michael DM Dryden
6

Macports tiene un puerto: https://trac.macports.org/browser/trunk/dports/devel/util-linux/Portfile

Intenté hacer una receta casera, pero hubo algunos problemas para que se compilara. Definitivamente es posible, pero hay algunos problemas que resolver.

Actualización :

He creado una fórmula que se puede instalar con:

brew install mkdryden/homebrew-misc/namei

Esta es la versión original, no la versión extraída de util-linux. (no estoy seguro de cuánto ha cambiado desde el original)

Michael DM Dryden
fuente
No soy un experto en homebrew, pero ¿usa eso el archivo en github.com/mkdryden/homebrew-misc/blob/master/Formula/namei.rb ?
mwfearnley
@mwfearnley Sí, ese es el archivo de recetas. Puedes mirarlo para ver el parche que tuve que hacer para que se compilara, aunque eso fue hace 5 años; No estoy seguro si todavía funciona correctamente.
Michael DM Dryden
Gracias, funcionó para mí ayer :)
mwfearnley
-2

He encontrado que esta es una posible solución:

ls -l /path/to/directory
Craig Wayne
fuente
1
Esto solo muestra la primera capa de enlace simbólico, no toda la cadena de enlace simbólico.
Jose Alban