面试题答案
一键面试#!/bin/bash
# 源目录
source_dir=$1
# 目标目录
target_dir=$2
# 日志文件
log_file="backup_log_$(date +%Y%m%d%H%M%S).log"
# 检查源目录是否存在
if [ ! -d "$source_dir" ]; then
echo "源目录 $source_dir 不存在" >> $log_file
exit 1
fi
# 检查目标目录是否存在,不存在则创建
if [ ! -d "$target_dir" ]; then
mkdir -p $target_dir
fi
# 备份文件并记录日志
for file in $source_dir/*; do
if [ -f "$file" ]; then
file_name=$(basename "$file")
backup_time=$(date +"%Y-%m-%d %H:%M:%S")
cp "$file" $target_dir
echo "备份文件: $file_name, 时间: $backup_time" >> $log_file
fi
done
echo "备份完成,日志记录在 $log_file"
使用方法:在终端中运行 bash 脚本名.sh 源目录路径 目标目录路径
。例如:bash backup.sh /home/user/source /home/user/target