ユーザー提供のファイル名サフィックスの追加中にコピーするシェルスクリプト

ユーザー提供のファイル名サフィックスの追加中にコピーするシェルスクリプト

私はあるディレクトリから別のディレクトリにファイルをコピーするためにSolarisでシェルスクリプトを作成しようとしています。ユーザーに日付を求めるプロンプトを表示し、それをターゲットファイル名にサフィックスとして追加する必要があります。どうすればいいですか?

答え1

#!/bin/bash

src="/dir1"
dest="/dir2"

read -p "Date: " date

cp -Rp "${src%/}/" "${dest}"
find "${dest}" -type f -exec mv "{}" "{}_${date}" \;

cp -Rp権限を維持しながらsrc /の内容を繰り返しコピーします。

${src%/}/"ソースディレクトリに/があることを確認してください。それ以外の場合、cp -R はディレクトリの内容ではなくディレクトリ自体をコピーするためです。

答え2

#!/bin/bash
Dir1="/dir1"
Dir2="/dir2"

read -p "Enter Date :- " Date

# if date is not set then use system date
[[ -z $Date ]] && Date=$(date +%F)

[[ -d "${Dir1}" ]] || { echo "ERROR: $Dir1 does not exists.."; exit; } && cd $Dir1

List=( * )

for File in "${List[@]}"
do
[[ -f $File ]] && cp -Rp $File ${Dir2}/`basename ${File}`_${Date};
done

関連情報