我编写了一个shell脚本,它使用awscli从s3中的几个文件夹中获取文件。我遇到的问题是,当我运行脚本时,它会创建文件夹,但文件只是下载到一个文件夹中。创建的文件夹的名称与S3中的相同。如何修改此脚本以便创建文件夹,但文件将下载到相应的文件夹中。
#!/bin/bash -e
DIRNAME='s3download'
SLASH='/'
SEVENFOLDERS=( "folder1" "folder2" "folder3" "folder4" "folder5" "folder6" "folder7" )
SEVENFOLDERPATH=("s3://blah/folder1/"
"s3://blah/folder2/" "s3://blah/folder3/" "s3://blah/folder4/" "s3://blah/folder5/" "s3://blah/folder6/" "s3://blah/folder7/" )
mkdir $DIRNAME
for i in "${SEVENFOLDERS[@]}"
do
:
SUBDIR=$DIRNAME$SLASH$i
mkdir -p $SUBDIR
done
for k in "${SEVENFOLDERPATH[@]}"
do
:
SUBDIR=$DIRNAME$SLASH$k
aws s3 cp --recursive $k $SUBDIR
done
echo $i "Status: 200 OK"
fi
答案 0 :(得分:0)
aws s3 sync
将以与S3相同的结构下载文件。
答案 1 :(得分:0)
以下命令替换“日期”节点中的值。
sed -i -e '/<System>/,/<\/System>/ s|<Date>[0-9a-z:/ .]\{1,\}</Date>|<Date>'"$newDate"'</Date>|g' sample.xml