Altere o diretório com base na saída de um pipeline

3

Eu quero ir para um diretório usando o filtro

Por exemplo, existe um arquivo chamado this-is-awsome

ls | grep this-is-awsome | xargs cd

Como posso ir para um diretório com filtro?

    
por mustafa 01.07.2014 / 21:50

2 respostas

7

O comentário de Salton explica o problema . Aqui estão algumas soluções:

cd "$(ls | grep this)"

Isso provavelmente não é tão bom, com todas as advertências habituais sobre analisar a saída de ls que se aplica a ele.

Uma versão ligeiramente melhor (assume o GNU find ):

cd "$(find -maxdepth 1 -type d -name '*this*')"

Ainda outra solução (talvez ainda melhor) se você estiver usando o Bash:

shopt -s nullglob
cd *this*/
    
por 01.07.2014 / 23:40
0

Quando você tem um arquivo com "this", apenas use

   cd *this*
    
por 03.07.2014 / 16:43