Distinção de maiúsculas e minúsculas no CentOS [duplicado]

0

Estou usando o CentOS. Existem imagens de > 10M em uma das minhas pastas, que são agrupadas em subdiretórios.

O problema é que algumas das minhas imagens são nomeadas como abc. jpg e outras são nomeadas como xyz. JPG . Então, quando eu tento acessar xyz.jpg, ele diz "Arquivo não encontrado", como a extensão faz distinção entre maiúsculas e minúsculas.

Existe alguma maneira de renomear todos os JPG para jpg , ou uma configuração httpd que funcione em torno deste problema.

    
por web-nomad 28.08.2012 / 10:25

2 respostas

4

Tente isso (isso renomeará todos os arquivos .JPG para .jpg de forma recursiva, em todos os subdiretórios do diretório em que você executa isso):

find . -name '*.JPG' -exec sh -c 'mv "$0" "${0%.JPG}.jpg"' {} \;

O find procura por todos os arquivos chamados * .JPG no diretório atual e seus subdiretórios, passa a lista para o comando mv que os renomeia

    
por 28.08.2012 / 11:05
3

Como sempre com esse tipo de perguntas e respostas, algumas palavras de cautela:

find . -name '*.JPG' -exec sh -c 'mv "$0" "${0%.JPG}.jpg"' {} \;

Embora funcione bem para a maioria das pessoas na maioria dos casos, é perigoso anunciar publicamente, pois há alguns problemas que podem se transformar em problemas de segurança em alguns contextos.

Isso renomeia arquivos e diretórios. Se renomear os diretórios, ele não conseguirá renomear os arquivos dentro (use a opção -depth)

Ele potencialmente perderá arquivos (foo.JPG foi renomeado para foo.jpg enquanto já existia foo.jpg), ou potencialmente coloca arquivos onde você não quer (considere por exemplo um diretório onde há um arquivo chamado foo .JPG e um chamado foo.jpg que é, na verdade, um link simbólico para /etc/apache2/conf.d. Ele potencialmente quebrará links simbólicos. Há uma condição de corrida que pode permitir que um atacante te engane para renomear qualquer arquivo.

Muitos desses problemas podem ser evitados usando uma ferramenta dedicada a essa tarefa (renomeação em lote de arquivos) em vez de tentar reinventar a roda. O zv do mmv e do zsh vem à mente.

    
por 28.08.2012 / 14:02