So kopieren Sie eine Dateiliste von einem Verzeichnis in ein anderes und ändern den Zieldateinamen im Handumdrehen

So kopieren Sie eine Dateiliste von einem Verzeichnis in ein anderes und ändern den Zieldateinamen im Handumdrehen

Könnten Sie eine Möglichkeit vorschlagen, eine Dateiliste von einem Verzeichnis in ein anderes zu kopieren?

Beim Kopieren sollte das Skript den ersten Buchstaben des Dateinamens groß und alle weiteren Buchstaben klein schreiben.

Antwort1

Zur Überlegung:

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

Hier *wird auf die Dateien im aktuellen Verzeichnis erweitert. Wenn Sie dies einschränken möchten aufDateienBeachten Sie nur Folgendes:

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

verwandte Informationen