在Debian系统下,你可以使用inotify-tools
来实现文件同步。inotify-tools
是一套基于Linux内核的inotify功能的命令行工具,可以用来监控文件系统事件并执行相应的操作。
首先,你需要安装inotify-tools
。在终端中运行以下命令:
sudo apt-get update
sudo apt-get install inotify-tools
接下来,你可以创建一个简单的脚本来实现文件同步。例如,创建一个名为sync_files.sh
的脚本,并添加以下内容:
#!/bin/bash
# 源目录和目标目录
src_dir="/path/to/source/directory"
dest_dir="/path/to/destination/directory"
# 使用inotifywait监控源目录
inotifywait -m -r -e create,delete,modify --format '%w%f' "${src_dir}" | while read file
do
# 获取相对路径
relative_path="${file#$src_dir}"
dest_file="${dest_dir}/${relative_path}"
# 创建目标目录(如果不存在)
mkdir -p "$(dirname "$dest_file")"
# 根据事件类型执行同步操作
case $event in
CREATE)
cp -u "$file" "$dest_file"
;;
DELETE)
rm -f "$dest_file"
;;
MODIFY)
cp -u "$file" "$dest_file"
;;
esac
done
确保将src_dir
和dest_dir
变量设置为你要同步的源目录和目标目录。
保存脚本并为其添加可执行权限:
chmod +x sync_files.sh
现在,你可以运行此脚本来实时同步文件:
./sync_files.sh
这个脚本会持续运行并监控源目录中的文件变化。当有文件被创建、删除或修改时,它会将这些更改同步到目标目录。
请注意,这个脚本是一个简单的示例,可能需要根据你的具体需求进行调整。例如,你可能需要处理符号链接、忽略特定文件或目录等。