Por que não posso canalizar 'pwd' para 'abrir' no macOS?

12

Isso é específico para o MacOS, mas parece muito unix para entrar na comunidade Pergunte diferente .

No Terminal, posso pwd , copiar o resultado, digitar open e colar o resultado e a pasta será aberta no Finder, mas

pwd | open

imprime a documentação de ajuda para open . Por que não funciona o encanamento, mas colando?

    
por Chuck 23.07.2016 / 06:04

5 respostas

19

Eu não tenho um Mac, então não posso testá-lo, mas a solução deve ser algo como:

open "'pwd'"

Nem todos os programas recebem sua entrada de stdin , o que seria necessário para o pipe funcionar.

    
por 23.07.2016 / 06:08
26

O utilitário open no Mac não lê a entrada padrão, mas recebe seus argumentos da linha de comando.

Para abrir o diretório de trabalho atual, você teria que dizer

$ open "$( pwd )"

ou

$ open "$PWD"

ou simplesmente

$ open .

como apontado nos comentários abaixo.

Com o -f flag, open pode ser feito para ler a partir da entrada padrão, mas apenas para abrir o que for recebido no editor de texto padrão.

    
por 23.07.2016 / 08:15
10

As outras respostas estão totalmente corretas. Se você quiser uma abreviação fácil , você pode fazer como @ fd0 proposto , e apenas use

open .

para abrir o diretório atual. O diretório atual é denominado . (um único ponto) no Unix, o diretório pai .. (dois pontos).

    
por 23.07.2016 / 12:57
6
pwd | xargs open

xargs empurra sua entrada padrão nos argumentos de seu primeiro argumento.

    
por 23.07.2016 / 22:52
0

Você pode usar um pipeline com -f para abrir o conteúdo do comando anterior em um Editor de Texto. Isso só se aplica a editores de texto. Para outros aplicativos, você precisará usar a sugestão nas outras perguntas.

Por exemplo:

ls | open -f

Isso abriria seu editor de texto padrão com o conteúdo da saída ls .

Você também pode especificar o editor de texto para usar -a :

ls | open -a 'Atom' -f

Isso abriria o Atom com o conteúdo de saída ls .

    
por 09.10.2018 / 16:34

Tags