在CentOS系统中,使用readdir
函数可以帮助你读取目录中的文件和子目录。要实现目录备份,你可以编写一个脚本来遍历源目录中的所有文件和子目录,并将它们复制到目标备份目录中。以下是一个简单的示例脚本:
#!/bin/bash
# 源目录和目标备份目录
source_dir="/path/to/source_directory"
backup_dir="/path/to/backup_directory"
# 创建备份目录(如果不存在)
mkdir -p "$backup_dir"
# 遍历源目录中的所有文件和子目录
while IFS= read -r -d $'\0' file; do
# 计算相对路径
relative_path="${file#$source_dir/}"
# 创建目标目录结构
mkdir -p "$backup_dir/$relative_path"
# 复制文件或目录
if [ -d "$file" ]; then
cp -r "$file" "$backup_dir/$relative_path"
else
cp "$file" "$backup_dir/$relative_path"
fi
done < <(find "$source_dir" -print0)
定义源目录和目标备份目录:
source_dir="/path/to/source_directory"
backup_dir="/path/to/backup_directory"
创建备份目录(如果不存在):
mkdir -p "$backup_dir"
遍历源目录中的所有文件和子目录:
while IFS= read -r -d $'\0' file; do
# 计算相对路径
relative_path="${file#$source_dir/}"
# 创建目标目录结构
mkdir -p "$backup_dir/$relative_path"
# 复制文件或目录
if [ -d "$file" ]; then
cp -r "$file" "$backup_dir/$relative_path"
else
cp "$file" "$backup_dir/$relative_path"
fi
done < <(find "$source_dir" -print0)
backup.sh
。chmod +x backup.sh
./backup.sh
这样,你就可以实现CentOS系统中的目录备份了。