我想写一个bash shell脚本来同步两个不同路径上的内容。Bash脚本递归遍历目录,比较和同步文件
我追求的算法包括以下步骤
- 给出两个完整的(而不是相对)路径
- 递归的比较文件(即文件名可任选有 基本名和后缀)两个路径的相应目录
- 如果对应的目录或文件不存在,则 将每个文件(从文件夹路径)复制到其他 对应的文件夹。
我已经想通了步骤1和2分别
OLD_IFS=$IFS
# The extra space after is crucial
IFS=\
for old_file in `diff -rq old/ new/ | grep "^Files.*differ$" | sed 's/^Files \(.*\) and .* differ$/\1/'`
do
mv $old_file $old_file.old
done
IFS=$OLD_IFS
感谢。
为什么不使用像'rsync',而不是写能力较差你自己的东西吗? – thkala 2012-07-28 19:20:51
自学。试图学习如何编写bash脚本。但这不是一项家庭作业。 – 2012-07-28 19:24:18
这很好 - 步骤3中的确切问题是什么? – thkala 2012-07-28 19:29:21