在 OS X 中使用某些应用比较两个文件夹的内容

在 OS X 中使用某些应用比较两个文件夹的内容

我正在改进文件夹 1/2 中朋友的 LaTeX 文档,而他正在编辑文件夹 1/1。

文件夹的初始内容是相同的。

如何将两个文件夹合并为一个,以使所有文件都合并在一起?

答案1

您想找出两个文件夹中文件的差异并合并更改吗?

如果您正在寻找 GUI 实用程序,您可以使用 FileMerge,/Developer/Applications/Utilities/如果您安装了 Apple 的开发人员工具,则可以在 找到它。它有一些奇怪的错误 - 主要是处理文件编码。

如果你正在寻找更快更好的东西,请查看更改.app- 虽然不便宜,但对于我来说已经值回票价的几倍了。

如果您想通过命令行执行此操作,您可以使用它diff来查找差异,然后手动将文件合并在一起,因为它会列出所有差异。(例如diff ~/Desktop/a ~/Desktop/b

答案2

由于 mac 运行的是 unix 版本,因此您可以使用来自既定 UNIX 传统的所有经过尝试、测试和真实的命令。

UNIX Shell 目录比较教程

答案3

以下代码由Git 社区

#!/bin/sh
#
# Filemerge.app must not already be open before running
# this script, or opendiff below will return immediately,
# and the TMPDIRs deleted before it gets the chance to read
# them.

[ \$# -eq 7 ] && opendiff "\$2" "\$5"
EOF
chmod +x merge.sh
GIT_EXTERNAL_DIFF=./merge.sh git-diff 


if test $# = 0; then
   OLD=`git-write-tree`
elif test "$1" = --cached; then
   OLD=HEAD
   NEW=`git-write-tree`
   shift
fi
if test $# -gt 0; then
   OLD="$1"; shift
fi
test $# -gt 0 && test -z "$CACHED" && NEW="$1"

TMPDIR1=`mktemp -d`
git-archive --format=tar $OLD | (cd $TMPDIR1; tar xf -)
if test -z "$NEW"; then
   TMPDIR2=$(git rev-parse --show-cdup)
   test -z "$cdup" && TMPDIR2=.
else
   TMPDIR2=`mktemp -d`
   git-archive --format=tar $NEW | (cd $TMPDIR2; tar xf -)
fi

opendiff $TMPDIR1 $TMPDIR2 | cat
rm -rf $TMPDIR1
test ! -z "$NEW" && rm -rf $TMPDIR2

然后你可以运行

opendiff folder1 folder2

来实现我的目标。

相关内容