在添加用户提供的文件名后缀的同时进行复制的 Shell 脚本

在添加用户提供的文件名后缀的同时进行复制的 Shell 脚本

我正在尝试在 Solaris 上编写一个 shell 脚本,将文件从一个目录复制到另一个目录。我需要它来提示用户输入日期,并将其作为后缀添加到目标文件名中。我该如何去做呢?

答案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

相关内容