比较两个目录中的文件和版本,其中一个具有符号链接?

我们正在将一些旧的项目的工具移到一个新的版本控制版本(在同一个磁盘上,使用不同的用户名),我的任务是查找旧帐户中的实用程序新的,并find两个帐户之间的不同文件。 新帐户已经运行了大约一年,人们对旧文件中的某些文件做了(小的)更改,而没有将其更改为新文件。

这些实用程序在远程服务器上,我只能读取(除了我自己的主文件夹)。

旧帐户称为user1,在〜user1 / bin /文件夹中包含所有实用程序,包括每个实用程序的源代码,可执行文件和脚本。

新帐户user2已经被设置为〜user2 / bin /文件夹中的每个“可执行文件/脚本”与子文件夹〜user2 / src / {utilityname} /中的相应文件的符号链接,还包含该可执行文件的来源。

有没有比这两个目录比较容易的方法

find ~user1/bin/ -maxdepth 1 -printf '%s, %p\n' | sort -k2 > user1.txt find -L ~user2/bin/ -maxdepth 1 -printf '%s, %p\n' | sort -k2 > user2.txt 

并手动比较结果,看看有什么不同/缺less?

另外,上面的命令只会比较〜user2 / bin /文件夹中的可执行文件/脚本,即使user1和user2之间的user2 / src / {utilityname} /中的源代码相同,例如,脚本中的不同path)。 是否有可能search一个实用程序的符号链接目标所在的文件夹为同名的源文件,以便我可以直接比较user1和user2之间的源文件?

我会用不同的方法:找到没有重复的文件。 我建议这个线程 ,特别是结合fdupesfindgrep

 fdupes -r backup/ documents/ > dup.txt find backup/ -type f | grep -Fxvf dup.txt 

但是,可能需要进行一些调整以适应您的需求,例如使用fdupes的“-s”选项。