o mmv pode renomear arquivos incrementando um índice?

o mmv pode renomear arquivos incrementando um índice?

O mmv, um utilitário de movimentação em massa, pode renomear arquivos de:

  • foo.txt
  • barra.txt
  • baz.txt

para:

  • 1.txt
  • 2.txt
  • 3.txt

A página de manual é intrigante, mas não sigo as instruções:

   Rename all *.jpeg files in the current directory to *.jpg:

  mmv '*.jpeg' '#1.jpg'

A #1variável pode ser definida como um número inteiro que aumenta? Embora eu não duvide que isso seja possível, é igualmente fácil (ou difícil) usar apenas um bash ou outro script?

Ignorando o possível problema de substituição 1.txtpara simplificar. Ou copie para um subdiretório.

Veja também:

https://stackoverflow.com/questions/3211595/

https://stackoverflow.com/questions/880467/

Renomeie arquivos incrementando um número dentro do nome do arquivo

Responder1

Não tenho esse programa em meu sistema — na verdade, não me lembro especificamente de ter ouvido falar dele antes — mas liesta cópia da página de manuale parece que o programa não inclui a funcionalidade desejada. No entanto, se você quiser fazer isso especialmente com mmv, você pode tentar o seguinte:

mmv -an "*.txt" bogus.target > /tmp/mmv.list

A -ninstrução diz mmvpara não fazer nenhum movimento, mas apenas relatar o que teria acontecido se você não tivesse especificado -n. O -ainstrui a anexar todos os arquivos de texto em um único arquivo bogus.target- na verdade, a página de manual fornece um exemplo muito semelhante (mas sem a -nopção) - eu uso aqui simplesmente para persuadir mmv a permitir que vários arquivos de origem colidam em um único alvo . Isso deve produzir um /tmp/mmv.listarquivo parecido com

bar.txt -> bogus.target
baz.txt -> bogus.target
foo.txt -> bogus.target

(Presumo que ele listará os arquivos em ordem lexicográfica (alfabética) ou em ordem de diretório (que pode parecer uma ordem arbitrária). Se você quiser alguma outra ordem, precisará encontrar alguma maneira de especificá-la.) Em seguida, processe o arquivo (por exemplo, com um script, TBD) para substituir as ocorrências de bogus.target por 1.txt, 2.txt, 3.txt, etc.

mmv < /tmp/mmv.list

Advertências: ainda não tentei (já que, como disse, nem tenho o software). Você provavelmente deve fazer uma simulação primeiro em alguns arquivos sem importância e/ou fazer backup de todos os seus arquivos antes de fazer isso.

Observe também que isso provavelmente é pelo menos tão trabalhoso quanto algumas das respostas às perguntas às quais você vinculou. Como eu disse, ofereço esta sugestão caso você queira fazer isso especialmente com mmv.

PS Minha resposta (acima) foi parcialmente inspirada porEste.

informação relacionada