Unix Shell脚本用于将文件从一个文件夹复制到另一个文件夹

时间:2017-03-27 12:41:31

标签: shell unix

嗨,这是我的shell脚本,用于将文件从一个目录复制到另一个带有timestamp的目录。但是我的脚本显示的参数太多了。我想将文件从一个目录复制到另一个目录。我的代码中出了什么错误。

Date_Val="$(date +%Y%m%d%H%M%S)";

cd /etl_mbl/SrcFiles/

if [  -f /etl_mbl/SrcFiles/SrcFiles_TEMP*.csv ]
then
cp /etl_mbl/SrcFiles/SrcFiles_TEMP/*.csv /etl_mbl/SrcFiles/Archive/*_$Date_Val.csv
fi

1 个答案:

答案 0 :(得分:2)

“参数太多”错误的原因是“if”语句中的通配符扩展为多个文件。另请注意,您不能在“cp”的目的地中使用通配符。你可能想要这样的东西:

#!/bin/bash

Date_Val="$(date +%Y%m%d%H%M%S)";

for file in ./src/*.csv; do
    filename=${file##*/}
    basename=${filename%.*}
    cp $file ./archive/$basename\_$Date_Val.csv
done