あるディレクトリから別のディレクトリにファイルのリストをコピーし、その場で宛先ファイル名を変更する方法

あるディレクトリから別のディレクトリにファイルのリストをコピーし、その場で宛先ファイル名を変更する方法

あるディレクトリから別のディレクトリにファイルのリストをコピーする方法を提案していただけますか。

コピー中、スクリプトはファイル名の最初の文字を大文字にし、他のすべての文字を小文字にする必要があります。

答え1

ご検討ください:

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

ここでは、*現在のディレクトリ内のファイルに展開されます。これを制限したい場合は、ファイルただし、次の点を考慮してください。

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

関連情報