123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #!/bin/bash
- # 检查到未定义的变量则停止执行并报错
- set -u
- # 检查参数数量
- if [ "$#" -ne 1 ]; then
- echo "Error: Incorrect number of arguments"
- echo "Usage: $0 ZIP_FILE_PATH"
- exit 1
- fi
- ZIP_FILE_PATH=$1
- SIMULATION_PATH="/home/cicv/work/pji_desktop/simulation"
- UNZIP_DATA_PATH="/home/cicv/work/pji_desktop/tmp_download/simulation_zip/data"
- # 检查zip文件是否存在
- if [ -e "$ZIP_FILE_PATH" ]; then
- echo "The file exists: $ZIP_FILE_PATH"
- else
- echo "The file does not exist: $ZIP_FILE_PATH"
- exit 1
- fi
- # 敏感目录列表
- SENSITIVE_DIRS=(
- "/"
- "/bin"
- "/boot"
- "/dev"
- "/etc"
- "/home"
- "/lib"
- "/lib64"
- "/opt"
- "/proc"
- "/root"
- "/sbin"
- "/sys"
- "/tmp"
- "/usr"
- "/var"
- "/home/cicv"
- )
- # 判断某目录是否为敏感目录
- is_sensitive_directory() {
- local dir="$1"
- for sensitive_dir in "${SENSITIVE_DIRS[@]}"; do
- if [[ "$dir" == "$sensitive_dir" ]]; then
- return 0 # 敏感目录
- fi
- done
- return 1 # 非敏感目录
- }
- # 清除历史文件
- # 检查要删除的目录是否为空
- if [[ -z "$UNZIP_DATA_PATH" ]]; then
- echo "Error: Variable UPDATE_DATA_PATH is not set or empty"
- exit 1
- fi
- # 检查要删除的目录是否为敏感目录
- if is_sensitive_directory "$UNZIP_DATA_PATH"; then
- echo "Error: '$UNZIP_DATA_PATH' is a sensitive directory and can not be deleted!"
- exit 1
- fi
- echo "Starting deleting old files: $UNZIP_DATA_PATH..."
- # 删除对应目录
- sudo rm -rf "$UNZIP_DATA_PATH"
- echo "Old files deleted: $UNZIP_DATA_PATH"
- # 解压文件
- echo "Starting decompressing zip file: $ZIP_FILE_PATH..."
- ## 解压zip文件
- unzip -o "$ZIP_FILE_PATH" -d "$UNZIP_DATA_PATH" # -o表示覆盖现有文件
- ## 解压data目录
- unzip -o "$UNZIP_DATA_PATH/data.zip" -d "$UNZIP_DATA_PATH/data" # -o表示覆盖现有文件
- echo "Zip file decompressed: $ZIP_FILE_PATH"
- # 复制文件到项目目录
- ## data目录
- echo "Starting copying directory: $UNZIP_DATA_PATH/data to $SIMULATION_PATH/data/pjirobot..."
- rm -rf "$SIMULATION_PATH"/data/pjirobot/data/*
- sudo cp -r "$UNZIP_DATA_PATH/data" "$SIMULATION_PATH/data/pjirobot/"
- echo "Directory copy successfully"
- ## origin_map.bag
- echo "Starting copying file: $UNZIP_DATA_PATH/origin_map.bag to $SIMULATION_PATH/data/map_bag..."
- cp "$UNZIP_DATA_PATH/origin_map.bag" "$SIMULATION_PATH/data/map_bag"
- echo "File copy successfully"
- ## map.bag
- echo "Starting copying file: $UNZIP_DATA_PATH/map.bag to $SIMULATION_PATH/data/map_bag..."
- cp "$UNZIP_DATA_PATH/map.bag" "$SIMULATION_PATH/data/map_bag"
- echo "File copy successfully"
- ## map.world
- echo "Starting copying file: $UNZIP_DATA_PATH/map.world to $SIMULATION_PATH/catkin_ws/src/SimulationEnvs/worlds..."
- cp "$UNZIP_DATA_PATH/map.world" "$SIMULATION_PATH/catkin_ws/src/SimulationEnvs/worlds"
- echo "File copy successfully"
- ## map.pgm
- echo "Starting copying file: $UNZIP_DATA_PATH/map.pgm to $SIMULATION_PATH/catkin_ws/src/Navigation/map..."
- cp "$UNZIP_DATA_PATH/map.pgm" "$SIMULATION_PATH/catkin_ws/src/Navigation/map"
- echo "File copy successfully"
- ## map.yaml
- echo "Starting copying file: $UNZIP_DATA_PATH/map.yaml to $SIMULATION_PATH/catkin_ws/src/Navigation/map..."
- cp "$UNZIP_DATA_PATH/map.yaml" "$SIMULATION_PATH/catkin_ws/src/Navigation/map"
- echo "File copy successfully"
- echo "Data preparation done."
|