gpt4 book ai didi

linux - 使差异忽略符号链接(symbolic link)

转载 作者:IT王子 更新时间:2023-10-29 00:52:28 26 4
gpt4 key购买 nike

我的项目结构如下

/project/config.mk
/project/dir1/config.mk -> ../config.mk
/project/dir2/config.mk -> ../config.mk

当我使用diff 创建补丁文件时,/project/config.mk 是正确完成的,但是两个符号链接(symbolic link)出现了一些问题。它们都被视为新文件,差异部分是 config.mk 文件的全部内容。我试图找到一个 diff 选项来禁用以下符号链接(symbolic link),但没有这样的选项可用。任何建议表示赞赏。

根据 Overbose 的建议,我创建了这个脚本。有用。感谢大家花时间回答。

#!/bin/sh -v
ori_dir=$1
new_dir=$2
patch_file=./patch_file
if [ -f ${patch_file} ]
then
rm ${patch_file}
fi
ori_files=`cd ${ori_dir} ; find ./ -type f ! -type l`
for i in ${ori_files} ; do
if [ -f ${ori_dir}/$i ]
then
if [ -f ${new_dir}/$i ]
then
diff -rup ${ori_dir}/$i ${new_dir}/$i >> ${patch_file}
fi
fi
done

最佳答案

在 GNU diff v3.3 中现在有一个选项 --no-dereference 可以解决这个问题

关于linux - 使差异忽略符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456355/

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