Cómo copiar una lista de archivos de un directorio a otro y modificar el nombre del archivo de destino sobre la marcha

Cómo copiar una lista de archivos de un directorio a otro y modificar el nombre del archivo de destino sobre la marcha

¿Podría proponer una forma de copiar una lista de archivos de un directorio a otro?

Durante la copia, el script debe escribir en mayúscula la primera letra del nombre del archivo y el resto de letras en minúscula.

Respuesta1

Por tu consideración:

for i in *;
do
    fletter=`echo $i| cut -b 1`;                 # FIRST LETTER
    rest=`echo $i | cut -b 2-`;                  # THE REST
    fletter=`echo $fletter | tr "[a-z]" "[A-Z]"`;# CAPITILIZE FIRST LETTER
    rest=`echo $rest | tr "[A-Z]" "[a-z]"`;      # LOWER CASE THE REST
    cp "$i" "/target/directory/$fletter$rest" ;  # COPY TO DESTINATION
done

Aquí, *se expandirá a los archivos en el directorio actual. Si desea que esto se restrinja aarchivosúnicamente, considere lo siguiente:

find . -type f -print0 | while IFS= read -r -d '' i; do
    # rest of the script
done

información relacionada