复制目录并更改其中的文件名

复制目录并更改其中的文件名

我正在尝试编写一个脚本,该脚本将复制一个目录的内容,将其发送到./test/并附加到_copy文件名。下面是我当前的脚本。我似乎无法附加_copy到文件名。任何改进的小建议也会有所帮助。

#!/bin/bash

sourceDir=~sschro15/practice
targetDir=./test/
count=0

if [ -d $sourceDir ] && [ -r  $sourceDir ]
then
   echo "blah" &> /dev/null
else
   echo "Error: $sourceDir is not accessible."
   exit 1
fi

if [ -w  $sourceDir ]

then
   echo "blah" &> /dev/null
else
   echo "Error: $sourceDir is not writeable."
   exit 1
fi

for file in $sourceDir/*
do
   cp -r  $file/* ./test/ "$targetDir/*_copy"
   echo
   echo "Copied $file to $sourceDir/*_copy"
   count=$[ $count + 1 ]
done

echo
echo "$count files have been copied."

答案1

尝试这个(未经测试),也许在前面加上,cp以便echo打印它将执行的命令:

代替:

cp -r  $file/* ./test/ "$targetDir/*_copy"

和:

cp -r  "$file" "${targetDir}/${file}_copy"

供测试用:

echo cp -r  "$file" "${targetDir}/${file}_copy"

相关内容