Adivinha o nome completo do arquivo

3

Eu tenho alguns arquivos com nomes muito longos no meu servidor e escrever os nomes completos é uma espécie de pita, então estou perguntando se o meu sistema Linux (Debian 7) pode adivinhar o nome completo do arquivo? Eu quero escrever algo como

rm some_file_1

em vez de

rm_some_file_1_very_long_information_bla_bla_foo_bar_meow

Não há outro arquivo além de some_file_1_very_long_information_bla_bla_foo_bar_meow cujo nome contenha some_file_1

    
por user2176127 27.11.2013 / 20:51

2 respostas

4

Isso é o que shell globs é para (entre outras coisas):

echo some_file_1*

Observe que estou usando echo em vez de rm deliberadamente. Quando estiver satisfeito com a glob que correspondeu exatamente ao (s) arquivo (s) que deseja remover, você poderá substituir echo por rm .

    
por 27.11.2013 / 20:53
0

O recurso que você está procurando é o autocompletar . Digite os primeiros caracteres do nome do arquivo na linha de comando do shell e pressione Tab . O nome do arquivo é preenchido automaticamente se o prefixo digitado não for ambíguo.

Se houver uma ambigüidade, o shell irá pelo menos completar até o ponto onde há múltiplas possibilidades. Por exemplo, se houver arquivos chamados some_file_1 , some_file_2 e some_fiddlesticks e você digitar some_ , em seguida, pressione Tab e, em seguida, os caracteres fi serão inseridos (pelo menos). Dependendo da sua configuração de shell, isso pode escolher um nome de arquivo para ser concluído, em vez de simplesmente inserir fi , e o comportamento se você pressionar Tab repetidamente também varia.

O preenchimento automático está disponível imediatamente no bash, zsh, (t) csh e fish, além de algumas variantes do BusyBox. Na maioria das instalações do ksh, você precisa pressionar Esc Esc ao invés de Tab .

Se o seu shell não tiver conclusão, você poderá usar curingas: digite rm some_file_1* para excluir todos os arquivos cujo nome comece com some_file_1 . Em comparação com o método de conclusão, isso tem a desvantagem de ser muito implacável para erros de digitação. Por exemplo, se houver outro arquivo que comece com o mesmo prefixo, ele será excluído. Se você acidentalmente colocar um espaço antes do * , todos os arquivos no diretório atual serão excluídos. Você pode colocar echo na frente do comando para ver o que ele fará e, em seguida, executar o comando novamente sem echo para executar a operação. Como alternativa, execute rm -i some_file_1* para obter o nome de cada arquivo.

    
por 28.11.2013 / 01:47