Comando Localizar / Renomear não capturando os nomes dos arquivos que eu quero encontrar

3

Eu tenho esses dois arquivos no meu diretório pessoal -

hello_newest.txt
goodbye_newest.txt

Quero renomeá-los para que a parte "mais recente" do nome do arquivo seja removida completamente, para que eles recomeçam hello.txt e goodbye.txt

Este é o comando que estou executando -

find -name "*.txt" -exec rename 's/newest//i' {} ";"

Ele não envia um erro ou faz nada aos arquivos depois que eu executo este comando. Eu verifiquei o link e parece que ele deve estar funcionando com base em alguns desses exemplos que estão lá.

Tenho certeza de que é algo simples, mas o que estou perdendo?

    
por user374987 18.01.2017 / 14:19

2 respostas

1

Parece que pode ser a versão do Redhat em que estávamos. O comando -

rename _newest '' *

Parece conseguir os mesmos objetivos.

Obrigado pela ajuda.

    
por 18.01.2017 / 15:26
0

Sintaxe diferente. Mas funcionou para mim:

for i in *.txt; do mv "$i" "'echo $i | sed 's/_[^.]*//''"; done

Todos os arquivos txt são encontrados usando o loop for e, em seguida, os charecters após o sublinhado são removidos usando o sed.

    
por 18.01.2017 / 16:16