Passa a saída de um comando como entrada para outro

0

Eu pesquisei um arquivo "portmap" dentro do diretório raiz da seguinte forma:

find -name "portmap"

Fornece a localização do arquivo

.init/...somepath./portmap

Agora quero alterar meu diretório atual para o local do arquivo portmap e imprimir o diretório de trabalho atual.

Então, estou pensando em pipilar o local acima para o cd. Mas como posso fazer isso com um comando?

Por favor ajude

    
por techfun 23.01.2014 / 20:09

2 respostas

1

Supondo que find encontre uma e apenas uma correspondência para o padrão de pesquisa, você pode usar

cd "$( dirname "$( find -name "portmap" )" )"

Se a qualquer momento você quiser fazer o diretório enumerado na saída do comando anterior, você pode usar

cd "$( dirname "$(!!)" )"
    
por 23.01.2014 / 20:33
-1

O comando xargs é perfeito para isso, mas o comando cd no shell não funciona bem com ele. Então eu usaria carrapatos de volta:

cd 'find . -type d -name "portmap"'
    
por 24.01.2014 / 11:45