Alterando o diretório atual para o diretório que possui identificador como substring

1

Meu terminal está atualmente no diretório inicial e o diretório inicial contém um diretório que tem "round" como substring. Existe alguma maneira de mudar diretamente para esse diretório sem digitar o nome completo do diretório? Como sem executar:

cd dir_name

Ou

cd identifier

Por que o comando abaixo abre o prompt secundário em vez de alterar o diretório

cd ls | grep identifier
    
por RAX 31.05.2014 / 12:17

1 resposta

0

Infelizmente, você não pode. A coisa mais próxima que você pode fazer é, se o identificador estiver no início do nome do arquivo, pressione Tab para Bash autocomplete. Infelizmente, isso não funcionará se o identificador estiver no meio ou no final do nome do arquivo. Nesse caso, recomendo usar o zsh, o que permite isso.

O cd ls | grep identifier não funcionou por dois motivos: primeiro, você estava tentando mudar para um diretório chamado ls e depois canalizar o stdout (que está vazio) para o grep procurando por "identificador". Isso seria corrigido se você usasse uma sub-rede como alternativa sugerida por cd $(ls | grep identifier) . Mas isso tem outro problema, ls saída está em colunas e grep trabalha por linhas. Então, se eu, por exemplo, tentar "sites" grep na seguinte saída:

➜ ls
autoreviewcomments.user.js  build.sh     build.xml  README.md  src
build.properties            build.sites  dist       SDK
➜ ls | grep sites
build.properties            build.sites  dist       SDK

ou em alguns casos a cor estará no caminho de cd , então você deve especificar "sem coloração":

cd $(ls | grep --no-color sites)
    
por Braiam 01.06.2014 / 16:07