¿Hay un equivalente al tree
comando Ubuntu para Mac OS X?
fuente
¿Hay un equivalente al tree
comando Ubuntu para Mac OS X?
También puede obtener el tree
comando en macOS. Si tiene Homebrew , todo lo que necesita hacer es ejecutar:
brew install tree
Sigue leyendo para más detalles.
Hay varios gestores de paquetes para macOS. Los más populares son: Homebrew , MacPorts o Fink . Puede instalar cualquiera de los dos, pero recomiendo Homebrew. ¡No instale más de uno al mismo tiempo!
Siga las instrucciones en el sitio web, luego ejecute uno de los siguientes comandos, dependiendo del administrador de paquetes que elija.
Para Homebrew:
brew install tree
Para MacPorts:
sudo port install tree
Para Fink:
fink install tree
Los gestores de paquetes ofrecen otros programas de línea de comandos, incluidos los de GNU / Linux que no vienen con macOS de forma predeterminada.
Primero, debe instalar las herramientas de línea de comandos Xcode ejecutando xcode-select --install
.
Luego, descargue la tree
fuente . Luego cambie el Makefile para que funcione , que también se explica en la respuesta de @ apuche a continuación . Comentar las opciones de Linux y descomentar las opciones de macOS debería ser suficiente.
Entonces, corre ./configure
, entonces make
.
Ahora debe mover el tree
archivo binario a una ubicación que esté en su ruta ejecutable. Por ejemplo:
sudo mkdir -p /usr/local/bin
sudo cp tree /usr/local/bin/tree
Ahora edite su ~/.bash_profile
para incluir:
export PATH="/usr/local/bin:$PATH"
Vuelva a cargar el shell, y ahora which tree
debería señalar /usr/local/bin/tree
.
make
en OS X no funciona. Primero, debe saber cómo instalar las herramientas de línea de comandos de Xcode (o, en general, tener alguna idea sobre la creación de software) y luego encontrará que se equivoca en un símbolo indefinido. Por lo tanto, debe hacer algunos ajustes en el archivo MAKE (como se explica aquí ). Demasiada molestia OMI../configure
ymake
exactamente hacer y por qué se necesitan en primer lugar. O no quieren lidiar con eso. O lea cualquier archivo de ayuda, para el caso. Prefieren hacer algo asíapt-get install
. Está bien si prefiere las instalaciones desde la fuente (y yo personalmente también), pero debe aceptar que hay soluciones que otros perciben más fácilmente, o tal vez incluso la mayoría de los usuarios normales de computadoras../configure
ymake
hacer. Solo sé que son pasos que debo realizar para instalar el software. Leí ciegamente los archivos README e INSTALL, y hago lo que dice.grep
. Me gustatree | grep -v 'json'
o similar.No es exactamente lo mismo, pero una forma rápida en Mac es:
y eso es. Enumerará todas las rutas de archivos en el directorio actual como una lista.
fuente
find . -type f
find . -type d -maxdepth 2
funcionó para mífind *
si no desea ver archivos y directorios ocultos.tree
no muestra archivos y directorios ocultos por defecto.find
es una herramienta 万金油.O si el administrador no le permitirá instalar cualquiera de los
brew
,fink
,port
herramientas siempre se puede construir de la fuente:Edite el Makefile para comentar la parte de Linux y descomentar el área de osx:
Opcional: forzar salida de color
Y mientras lo hace, si desea forzar al árbol para que siempre coloree la salida, siempre puede editar el
main
método deltree.c
archivo y agregarloforce_color=TRUE;
antessetLocale(LC_TYPE,"");
Finalmente presiona
make
y has terminadotree
de compilar para mac.Homenaje a Shaun Chapman por su publicación original en su blog.
fuente
force_color = TRUE;
. Sin punto y coma y obtienes un error de compilación.setLocale
susetlocale
. Entoncestree.c
, buscassetlocale(LC_TYPE,"")
; ¡y gracias!/bin
(o alguna ruta para que pueda usarse globalmente)?warning: format specifies type 'long' but the argument has type 'long long'
. La solución fue cambiar un especificador de formato de%9ld
a%9lld
.Probablemente deberías estar usando homebrew . Si lo haces:
fuente
No hay un
tree
comando formal per se, sin embargo, puede hacer esto:Guarde el siguiente script en / usr / local / bin / tree
Cambia los permisos para que puedas ejecutarlo:
Por supuesto, puede que tenga que crear
/usr/local/bin
:fuente
tree
, pero sigue siendo una buena solución.Una alternativa usando
find
yawk
:fuente
Encontré una solución simple aquí: http://murphymac.com/tree-command-for-mac/
Por lo tanto, agregar lo siguiente a su
.bashrc
,.bash_profile
o cualquier otro lugar hará que funcione:Ahora agregar un
tree
comando se imprimirá así:fuente
Agregando un pequeño punto a la respuesta de @ apuche para la función sin raíz OSX El Capitan .
make install
falla ya que no podemos escribir en el/usr/bin
directorio.Para superar esto, solo edite
Makefile
para tenerprefix = /usr/local
fuente
./configure --prefix=/usr/local
antes de ejecutarmake
ymake install
obtendría los mismos resultados.prefix
en tales escenarios. Pero no hay ningúnconfigure
archivo en la última versión del árbol (1.7.0) ahora. ElINSTALL
archivo en el directorio descomprimido solo dice usarmake
y demake install
inmediato.Agregué lo siguiente a ~ / .bash_profile para usarlo en Terminal.app. Se incluyen algunos comentarios para ayudar a recordar cómo se utiliza find.
ejemplo para el directorio actual
ejemplo para algún camino
fuente
Aquí hay una solución de script Ruby que produce un buen árbol Unicode junto con metadatos útiles.
Puede modificar la
meta = …
línea para extraer diferentes metadatos para mostrar, seleccionando manualmente las piezas divididas en la siguiente línea. Con un poco más de trabajo, podría pasar argumentos arbitrarios de ls para seleccionar los metadatos a mostrar.Salida de muestra (se ve mejor en el terminal OS X que la fuente en Stack Overflow):
fuente
No es tan bonito como el árbol gnu ... pero es realmente fácil usar alias en bash ... Incluso puedes agregar un poco de color al agregar la opción G al color ls de osx.
fuente
Instalar Xcode
Obtener herramientas de línea de comandos
fuente
Tarde al juego, pero tenía la misma pregunta. Debido a restricciones en el lugar de trabajo, no pude instalar un paquete desde la fuente o a través de un administrador de paquetes de terceros.
Esta es mi implementación:
Simplemente agregue la función a
/Users/foo/.profile
o.bash_profile
, luego actualice el perfil con:source .profile
o:source .bash_profile
fuente