사용자 제공 파일 이름 접미사를 추가하는 동안 복사하는 쉘 스크립트

사용자 제공 파일 이름 접미사를 추가하는 동안 복사하는 쉘 스크립트

나는 한 디렉토리에서 다른 디렉토리로 파일을 복사하기 위해 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

관련 정보