gpt4 book ai didi

linux - 比较两个目录中的文件和版本,其中一个目录有符号链接(symbolic link)?

转载 作者:太空狗 更新时间:2023-10-29 12:25:25 25 4
gpt4 key购买 nike

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

这些实用程序位于我只有读取权限的远程服务器上(我自己的主文件夹除外)。

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

新帐户,比如 user2,已按照以下方式设置:~user2/bin/文件夹中的每个“可执行文件/脚本”都是指向子文件夹 ~user2/src/{utilityname} 中相应文件的符号链接(symbolic link)/,其中还包含该可执行文件的源代码。

有没有比

更简单的方法来比较两个目录
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

并手动比较结果以查看不同/缺失的内容?

此外,上述命令只会让我比较 ~user2/bin/文件夹中的可执行文件/脚本,即使 ~user2/src/{utilityname}/中的源代码在 user1 和user2(例如,由于脚本中的不同路径)。是否可以在实用程序的符号链接(symbolic link)目标所在的文件夹中搜索具有相同名称的源文件,以便我可以直接比较 user1 和 user2 之间的源文件?

最佳答案

我会使用不同的方法:查找没有重复的文件。我建议 this thread ,尤其是 fdupesfindgrep 的部分:

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

不过,它可能需要进行更多调整以适应您的需求,例如使用 fdupes 的“-s”选项。

关于linux - 比较两个目录中的文件和版本,其中一个目录有符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42904614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com