我如何只比较某些文件?
How do I diff only certain files?
我有一个文件列表(目录中文件的子集),我想生成一个仅包含这些文件差异的补丁。
从 diff 手册来看,我似乎可以排除 (-x),但需要为我不想包含的每个文件指定它,这看起来很麻烦并且难以干净地编写脚本。
有没有办法只给 diff 一个文件列表?我已经将包含更改的文件隔离到一个单独的目录中,而且我还有一个包含文件名列表的文件,因此我可以以最有效的方式将其呈现给 diff。
我尝试过的:
cd filestodiff/
for i in `*`; do diff /fileswithchanges/$i /fileswithoutchanges/$i >> mypatch.diff; done
但是补丁不认为这是有效输入,因为没有包含文件名 header。
patchutils
提供 filterdiff
可以做到这一点:
diff -ur old/ new/ | filterdiff -I filelist > patchfile
打包
我有一个文件列表(目录中文件的子集),我想生成一个仅包含这些文件差异的补丁。
从 diff 手册来看,我似乎可以排除 (-x),但需要为我不想包含的每个文件指定它,这看起来很麻烦并且难以干净地编写脚本。
有没有办法只给 diff 一个文件列表?我已经将包含更改的文件隔离到一个单独的目录中,而且我还有一个包含文件名列表的文件,因此我可以以最有效的方式将其呈现给 diff。
我尝试过的:
cd filestodiff/
for i in `*`; do diff /fileswithchanges/$i /fileswithoutchanges/$i >> mypatch.diff; done
但是补丁不认为这是有效输入,因为没有包含文件名 header。
patchutils
提供 filterdiff
可以做到这一点:
diff -ur old/ new/ | filterdiff -I filelist > patchfile
打包