标签: diff

如何将文件与软盘映像和实际软盘的内容进行比较?

是否有将软盘映像(例如 .iso 文件)与写入映像的软盘的实际内容(例如 /dev/fd0)进行比较的命令?

diff floppy

7
推荐指数
1
解决办法
1114
查看次数

获取 diff(或 git diff)以正确显示插入的大块头

假设我有两个文件。第一个有内容:

line 1
foo
line 2

line 1
bar
line 2
Run Code Online (Sandbox Code Playgroud)

第二个在中间插入了一个新部分,所以它看起来像这样:

line 1
foo
line 2

line 1
new text
line 2

line 1
bar
line 2
Run Code Online (Sandbox Code Playgroud)

现在,当我执行“diff -u”时,我得到如下输出:

--- file1   2013-06-25 16:27:43.170231844 -0500
+++ file2   2013-06-25 16:27:59.218757056 -0500
@@ -1,7 +1,11 @@
line 1
foo
line 2

line 1
+new text
+line 2
+
+line 1
bar
line 2
Run Code Online (Sandbox Code Playgroud)

这并没有正确反映插入了中间节——相反,它看起来像是第二节被更改了,并且在末尾添加了一个新节(这是因为算法从第一个不同的行开始)。

有没有办法让 diff(单独使用,或者使用 git diff)来显示这个输出?

--- file1   2013-06-25 16:27:43.170231844 -0500
+++ file2   2013-06-25 16:27:59.218757056 -0500
@@ -1,7 +1,11 @@ …
Run Code Online (Sandbox Code Playgroud)

diff git

7
推荐指数
1
解决办法
1168
查看次数

为什么从 Makefile 调用时 diff 会失败?

我正在尝试解决的补丁问题的缩小范围:只有两个文件,每个文件的大小为 1 个字节:

  • 文件a(包含'a'
  • 文件b(包含'b')和

目标是制作并应用一个补丁来改变'b'to的值'a'。Makefile 的内容是:

patch:
        diff -u b a > b2a.patch
        patch -o b.corrected b < b2a.patch
        diff a b.corrected

clean:
        rm -f b2a.patch b.corrected
Run Code Online (Sandbox Code Playgroud)

鉴于上述情况,make失败并显示以下输出:

$ make
diff -u b a > b2a.patch
make: *** [patch] Error 1
Run Code Online (Sandbox Code Playgroud)

但是,如果我在 bash shell 上一个接一个地执行 Makefile 中的命令,则完全没有问题。

make diff patch

7
推荐指数
1
解决办法
5974
查看次数

比较关于文件名(以及大小和日期)的目录树

我想检查从备份还原的结果。这是因为 MacOS 上的 TimeMachine 给了我一些奇怪的错误和警告,我想确保在恢复后一切都恢复原状。虽然我不相信 TimeMachine 会放回每个文件,但我相信它会将它恢复的每个文件都放回正确的内容。

我想过 diff -r,但经历大约 300 GiB 可能需要永远。我可以至少比较文件的存在,但在同一次运行中比较大小和日期更好。

我知道像这样的解决方案

diff <(ls -R $PATH1) <(ls -R $PATH2)
Run Code Online (Sandbox Code Playgroud)

但输出难以阅读。我宁愿每个文件只在一侧找到一行。此外,我必须依靠 ls 以相同的顺序在双方的树中进行。这可能不同,因为文件系统可能不同。

我最想得到一个懒惰的工具,它采用两条路径,输出差异达到任何所需的检查水平,也许是 macports 之外的东西。但我不害怕大量的抨击。

osx bash backup diff

7
推荐指数
2
解决办法
2万
查看次数

区分整个 Linux 系统

我安装了一个基本的 Linux 系统。我想运行一个非常大且复杂的第三方脚本,它将对整个系统的各个部分进行许多更改。这些更改将包括添加新文件、修改现有文件和删除现有文件。脚本完成后,我将有一个修改后的系统。这些修改将是广泛而实质性的。

我想要关于所有已添加、删除或修改的文件的某种报告以及对修改的逐行分析。像文件差异工具的输出这样的东西会很棒。

我假设我需要在运行脚本之前制作某种快照,然后制作第二个快照。我假设然后我会将这些快照提供给某种差异或类似差异的工具。

有谁知道要使用哪些工具以及如何区分整个系统?

我正在使用 Virtualbox,它确实具有差异图像功能,但我不知道我是否可以使其适应此目的。此外,如果可能的话,我更喜欢更通用的解决方案。

linux diff virtualbox

7
推荐指数
1
解决办法
487
查看次数

如何在没有git的情况下彻底比较两个目录?

这里彻底的意思是“列出所有不同的文件,找出那些同名不同内容的文件,列出不同的内容”。

在我得到一个懒惰的解决方案之前,git init一个目录并将另一个目录复制到其中。然后使用git diff查看差异。

但我想知道还有另一种更聪明的方法来做到这一点吗?于是我提出了这个问题。

diff files

7
推荐指数
1
解决办法
1万
查看次数

是什么导致 `diff` 运行 `git diff`?

我想diff按照这里和我在键入时看到的文档中的描述使用man diff。但是,当我输入时diff,我得到的是:

~ ??? diff
usage: git diff --no-index <path> <path>
Run Code Online (Sandbox Code Playgroud)

同样,当我尝试使用 时 diff,我会收到 git 错误,因为-rq支持man diff但不支持git diff

~ ??? diff -rq ~/ ~/Desktop
fatal: invalid diff option/value: -rq
Run Code Online (Sandbox Code Playgroud)

我正在使用Preztohub,它们都有助于提高 git 生产力,但据我所知,它们都没有创建至少不以开头的别名g

我已经运行几个剧本像这样,试图发现运作定义的东西diffgit diff,但无济于事。

我如何解决这个问题/找到导致它的原因/覆盖它?

编辑

type diff

diff is a shell function
diff is /usr/bin/diff
Run Code Online (Sandbox Code Playgroud)

osx zsh diff alias prezto

7
推荐指数
1
解决办法
1275
查看次数

“@@”行中的数字在 diff 的输出中是什么意思?

这是 Unix Shell 程序的一个例子diff,来自版本控制与 Git,由 Loeliger,2ed:

在此处输入图片说明

让我们详细看看差异。

在标题中,原始文件用 - - - 表示,新文件用 +++ 表示。

@@ 行为两个文件版本提供行号上下文。

“@@”行中的数字究竟是什么意思?

diff

7
推荐指数
1
解决办法
9467
查看次数

7
推荐指数
3
解决办法
1万
查看次数

Diff:只比较文件是否存在,不比较内容

我只想使用 Diff 来检查文件和目录是否在两个位置存在相同,但不比较文件本身的内容,因为这就是我所需要的,而常规 Diff 只需要太长时间来处理数据量。我该怎么办?是否有其他一些 Debian 标准工具可以实现这一点?

diff

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

diff ×10

osx ×2

alias ×1

backup ×1

bash ×1

file-comparison ×1

files ×1

floppy ×1

git ×1

linux ×1

make ×1

patch ×1

prezto ×1

shell-script ×1

virtualbox ×1

zsh ×1