#!/bin/bash
# 检查参数数量是否正确
if [ "$#" -ne 2 ]; then
echo "用法: $0 <源文件> <目标目录>"
exit 1
fi
# 获取参数
SOURCE_FILE="$1" # 第一个参数:源文件路径
TARGET_DIR="$2" # 第二个参数:目标目录路径
# 检查源文件是否存在
if [ ! -f "$SOURCE_FILE" ]; then
echo "错误: 源文件 $SOURCE_FILE 不存在!"
exit 1
fi
# 创建目标目录(如果不存在)
mkdir -p "$TARGET_DIR"
# 循环复制 30 份文件
for i in {1..30}
do
TARGET_FILE="$TARGET_DIR/$(basename "$SOURCE_FILE")_copy_$i"
echo "正在复制第 $i 份文件到 $TARGET_FILE ..."
# 使用 rsync 复制文件(保留文件属性)
rsync -ah --progress "$SOURCE_FILE" "$TARGET_FILE"
# 检查是否复制成功
if [ $? -eq 0 ]; then
echo "第 $i 份文件复制成功!"
else
echo "第 $i 份文件复制失败!"
exit 1
fi
done
echo "所有文件复制完成!"
使用 rsync 复制文件:
- `rsync` 支持高效复制大文件,并保留文件属性。
- `-a`:归档模式,保留文件属性。
- `-h`:以人类可读的格式显示文件大小。
- `--progress`:显示复制进度。