嗨,这是我的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
答案 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