Answers:
如果您的文件名很简单(没有空白等),您可以使用
left_dir=...
right_dir=...
find $left_dir -type f | while read left ; do
relpath=${left#$left_dir}
diff <(myfilter $left) <(myfilter $right_dir$relpath)
done
如果这已经“很多脚本”并且仍然存在问题(文件名中有空格,一边是不存在的文件等),那么你可能运气不好。
find left -type d
,find right_dir -type d
转储左右差异并将你的代码应用到交集。
$left_dir/path/deeper/than/one
存在,relpath将是path/deeper/than/one
和diff将比较文件$right_dir/path/deeper/than/one
。
find … -print0 | while IFS= read -r -d '' …