como remover arquivos que poderiam estar com letras maiúsculas / minúsculas

0

como remover arquivos que poderiam estar com menor / maior caso

por exemplo, o file_name poderia ser:

  • STOCK.Repo ou
  • Stock.REPO ou
  • stOCK.repo ou
  • stock.repo
  • ... etc

Eu corria:

 rm -f $file_name

o objetivo é remover o arquivo como stock.repo que pode estar em maiúsculas / minúsculas na máquina remota

    
por yael 20.02.2018 / 12:26

3 respostas

4

Para solução específica de Bash:

$ shopt -s nocaseglob

e, em seguida, execute o comando rm .

Nota para cancelar essa opção, use shopt -u nocaseglob

Para completar, gostaria de salientar uma solução alternativa, mas menos elegante:

$ rm [sS][tT][oO][cC][kK].[rR][eE][pP][oO]
    
por 20.02.2018 / 12:36
3

Você pode fazer isso usando o comando find

find /path/to/directory -type f -iname stock.repo -exec rm -f {} \;

Mas tenha muito cuidado. Ele está trabalhando recursivamente a partir do diretório / path / to /. Você deve considerar o uso da opção maxdepth e se familiarizar mais com esse comando antes de executá-lo no sistema de produção, onde danos permanentes podem ser causados.

    
por 20.02.2018 / 12:38
-1

Eu fiz usando o método abaixo. Resposta fornecida acima é muito boa. Abaixo de uma é minha tentativa

ls -ltr | awk '{print $9}' | sed -n '/^STOCK.Repo$/Ip'  |awk '{print "rm" " " $1}'| sh
    
por 20.02.2018 / 16:25