Como renomear múltiplos arquivos no Bash Scripting? [fechadas]

0

Suponha que eu queira renomear 3 arquivos no mesmo diretório. Exemplo: test1.gzip test2.gzip test3.gzip

Agora, deseja renomear todos os arquivos acima para algo como

test1_20180518.gzip test2_20180518.gzip test3_20180518.gzip

Agora, como pode obter o resultado? Alguém por favor me ajude !!

Por favor, me diga como fazer isso no bash scripting?

    
por Red Phoenix 28.05.2018 / 18:15

2 respostas

1

Verifique sua versão "renomear" com rename -V . Se você ver:

  • " util-linux " então

    rename .gzip _$(date "+%Y%m%d").gzip *.gzip
    
  • " File::Rename " então

    rename 'chomp(my $date = 'date "+%Y%m%d"'); s/\.gzip/_$date.gzip/' *.gzip
    
por 28.05.2018 / 18:54
0

Solução posible (você precisa escolher um no corpo do loop):

#!/bin/bash

pattern="pattern"
i=0

for file in 'find <your_path> -type f -name '*.zip''
do
    extension="${file##*.}"
    filename="${file%.*}"

    # without extenstion
    mv "$file" "$filename-$pattern.$extension"

    # whole filename
    mv "$file" "$pattern-$i"
    i=$((i + 1))
done
    
por 28.05.2018 / 18:56