Existe um equivalente ao tree
comando Ubuntu para Mac OS X?
fonte
Existe um equivalente ao tree
comando Ubuntu para Mac OS X?
Você também pode obter o tree
comando no macOS. Se você possui o Homebrew , tudo o que você precisa fazer é executar:
brew install tree
Continue lendo para obter detalhes.
Existem vários gerenciadores de pacotes para o macOS. Os mais populares são: Homebrew , MacPorts ou Fink . Você pode instalar qualquer um deles, mas eu recomendo o Homebrew. Não instale mais de um deles ao mesmo tempo!
Siga as instruções no site e execute um dos seguintes comandos, dependendo do gerenciador de pacotes que você escolheu.
Para Homebrew:
brew install tree
Para MacPorts:
sudo port install tree
Para o Fink:
fink install tree
Os gerenciadores de pacotes oferecem outros programas de linha de comando, incluindo os do GNU / Linux que não vêm com o macOS por padrão.
Primeiro, você deve instalar as ferramentas de linha de comando do Xcode executando xcode-select --install
.
Em seguida, baixe a tree
fonte . Em seguida, mudar o Makefile para fazê-lo funcionar , o que também é explicado em resposta de @ apuche abaixo . Comentar as opções do Linux e descomentar as opções do macOS deve ser suficiente.
Então corra ./configure
, então make
.
Agora você precisa mover o tree
arquivo binário para um local que esteja no seu caminho executável. Por exemplo:
sudo mkdir -p /usr/local/bin
sudo cp tree /usr/local/bin/tree
Agora edite seu ~/.bash_profile
para incluir:
export PATH="/usr/local/bin:$PATH"
Recarregue o shell e agora which tree
deve apontar para /usr/local/bin/tree
.
make
no OS X não funciona. Primeiro, você precisa saber como instalar as ferramentas de linha de comando do Xcode (ou, geralmente, ter alguma idéia sobre a criação de software) e, em seguida, descobrirá que há erros em um símbolo indefinido. Então você precisa fazer alguns ajustes no makefile (como explicado aqui ). IMO muito aborrecido../configure
emake
exatamente fazem e por que essas são necessárias em primeiro lugar. Ou eles não querem lidar com isso. Ou leia todos os arquivos de ajuda. Eles preferem fazer algo assimapt-get install
. Tudo bem se você preferir instalações da fonte (e eu também pessoalmente), mas você deve aceitar que existem soluções que são percebidas mais facilmente por outras pessoas, ou talvez até pela maioria dos usuários normais de computador../configure
emake
fazer. Só sei que são etapas que preciso executar para instalar o software. Li cegamente os arquivos README e INSTALL e faço o que diz.grep
. Gostotree | grep -v 'json'
ou similar.Não é exatamente o mesmo, mas uma maneira rápida no Mac é:
e é isso. Ele listará todos os caminhos de arquivo no diretório atual como uma lista.
fonte
find . -type f
find . -type d -maxdepth 2
funcionou para mimfind *
se você não quiser ver arquivos e diretórios ocultos.tree
não mostra arquivos e diretórios ocultos por padrão.find
é uma ferramenta 万金油.Ou se o administrador não vai deixar você instalar qualquer um dos
brew
,fink
,port
ferramentas que você sempre pode construí-lo a partir da fonte:Edite o Makefile para comentar a parte do linux e descomentar a área osx:
Opcional: Forçando a saída colorida
E enquanto você está nisso, se você deseja forçar a árvore a sempre colorir a saída, sempre pode editar o
main
método dotree.c
arquivo e adicioná-loforce_color=TRUE;
antessetLocale(LC_TYPE,"");
Finalmente clique
make
e você está prontotree
para construir para o mac.Homenagem vai para Shaun Chapman por seu post original em seu blog.
fonte
force_color = TRUE;
. Sem ponto e vírgula e você recebe um erro de compilação.setLocale
suasetlocale
. Entãotree.c
, você procurasetlocale(LC_TYPE,"")
; e obrigado!/bin
(ou algum caminho para que possa ser usado globalmente)?warning: format specifies type 'long' but the argument has type 'long long'
. A correção foi alterar um especificador de formato de%9ld
para%9lld
.Você provavelmente deveria estar usando homebrew . Se você fizer:
fonte
Não existe um
tree
comando formal em si, no entanto, você pode fazer isso:Salve o seguinte script em / usr / local / bin / tree
Altere as permissões para poder executá-lo:
Claro que você pode ter que criar
/usr/local/bin
:fonte
tree
, mas ainda é uma pequena e agradável solução.Uma alternativa usando
find
eawk
:fonte
Encontrei uma solução simples aqui: http://murphymac.com/tree-command-for-mac/
Assim, adicionando o seguinte ao seu
.bashrc
,.bash_profile
ou em qualquer outro lugar vai fazer o trabalho:Agora, adicionar um
tree
comando será impresso assim:fonte
Adicionando um pequeno ponto à resposta do @ apuche para o recurso sem raiz OSX El Capitan .
make install
falha, pois não temos permissão para gravar no/usr/bin
diretório.Para superar isso, basta editar
Makefile
a terprefix = /usr/local
fonte
./configure --prefix=/usr/local
antes da execuçãomake
emake install
obteria os mesmos resultados.prefix
em tais cenários. Mas não há nenhumconfigure
arquivo na versão mais recente da árvore (1.7.0) agora. OINSTALL
arquivo no diretório descompactado apenas diz para usarmake
emake install
imediatamente.Adicionei o seguinte ao ~ / .bash_profile para uso no Terminal.app. Alguns comentários estão incluídos para ajudar a lembrar como a descoberta está sendo usada.
exemplo para o diretório atual
exemplo para algum caminho
fonte
Aqui está uma solução de script Ruby que produz uma boa árvore Unicode junto com metadados úteis.
Você pode modificar a
meta = …
linha para extrair diferentes metadados a serem exibidos, escolhendo manualmente as partes divididas na próxima linha. Com um pouco mais de trabalho, você pode passar argumentos ls arbitrários para selecionar os metadados a serem exibidos.Saída de amostra (parece melhor no terminal OS X do que a fonte no Stack Overflow):
fonte
Não é tão bonito quanto a árvore gnu ... mas é realmente fácil criar um alias no bash ... Você pode até adicionar um pouco de cor, colocando a opção G na cor ls do osx.
fonte
Instalar o Xcode
Obter ferramentas de linha de comando
fonte
Tarde do jogo, mas eu tinha a mesma pergunta. Devido a restrições no local de trabalho, não consegui instalar um pacote da fonte ou através de um gerenciador de pacotes de terceiros.
Esta é a minha implementação:
Simplesmente adicione a função a
/Users/foo/.profile
ou.bash_profile
e atualize o perfil com:source .profile
ou:source .bash_profile
fonte