Aggiunta di suffissi casuali ai nomi dei file

3

Vorrei cambiare il nome del file di molti file aggiungendo un suffisso casuale ai nomi di file esistenti.

Ho provato a cambiare questo codice (cambia il nome file invece di aggiungere un suffisso) ma senza successo.

#!/bin/bash

chars=( {a..z} {A..Z} {0..9} )

function rand_string {
    local c=$1 ret=
    while((c--)); do
        ret+=${chars[$((RANDOM%${#chars[@]}))]}
    done
    printf '%s\n' "$ret"
}

for file in ~/Desktop/test/*; do
    ext=$(echo ${file} | sed 's,^.*(\.[^\.]*$),,')
    mv "$file" ~/Desktop/test/"$file$(rand_string 10)"${ext}
done

Sarebbe preferibile una linea di comando o una soluzione di automazione

    
posta El-Ekim 27.04.2018 - 09:49
fonte

1 risposta

3

Se vuoi semplicemente aggiungere una stringa casuale, il ciclo for è piuttosto semplice:

cd ~/Desktop/test/
for file in *; do
    suffix="${file##.*}"
    base="${file%.*}"
    mv "$file" "$base.$(rand_string 10).$suffix"
done

Cambia 10 sul numero di caratteri casuali che vuoi aggiungere.

    
risposta data 27.04.2018 - 10:28
fonte

Leggi altre domande sui tag