Você pode fazer
$ cd $( ls | grep foo )
mas isso só funcionará se o resultado for relativo ao local em que você está; para qualquer coisa mais você vai querer find
(ele irá imprimir caminhos) e um padrão grep
muito específico.
Eu quero fazer ls | grep something
e cd
para a única coisa listada. Eu tentei com |
e procurei, mas nada foi encontrado. Está usando xargs
?
Você pode fazer
$ cd $( ls | grep foo )
mas isso só funcionará se o resultado for relativo ao local em que você está; para qualquer coisa mais você vai querer find
(ele irá imprimir caminhos) e um padrão grep
muito específico.
Se o padrão que você deseja corresponder puder ser expresso como glob, e você sabe que haverá apenas uma correspondência, você poderá permitir que a sua shell faça a correspondência:
$ cd *foo*
Caso contrário, a opção mais fácil é comandar a substituição para fornecer o parâmetro para cd
:
$ cd $(ls | grep '*foo*' | head -n1)