标签: diff

查找重复文件的 Linux 工具?

我有大量且不断增长的文本文件,它们都非常小(小于 100 字节)。我想区分每个可能的文件对并注意哪些是重复的。我可以编写一个 Python 脚本来做到这一点,但我想知道是否有一个现有的 Linux 命令行工具(或者一个简单的工具组合)可以做到这一点?

更新(响应mfinni评论):这些文件都在一个目录中,因此它们都有不同的文件名。(但它们都有一个共同的文件扩展名,因此可以轻松地使用通配符将它们全部选中。)

linux files diff

13
推荐指数
2
解决办法
8568
查看次数

应用多个 .patch 文件

我有一个包含.patch文件的目录,使用 diff 生成。

我想将所有这些补丁应用patch -p1到另一个目录。

但是补丁只需要一个文件,除非我cat.

使用xargs或类似工具应用多个文件的命令是什么。

bash patch diff xargs

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

标识同一文件的两个 ZFS 快照之间更改的字节数

假设我有一个包含虚拟机磁盘映像的 ZFS 文件系统,例如

/tank/examplevm/examplevm-flat.vmdk
Run Code Online (Sandbox Code Playgroud)

让我们进一步假设我每天拍摄该 ZFS 文件系统的快照,例如

$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
Run Code Online (Sandbox Code Playgroud)

很明显,在每个每日快照之间的这段时间里,我的examplevm-flat.vmdk 发生了变化(大多数情况下,图像的大小保持不变,但虚拟磁盘中的块被修改)。

因此,ZFS diff 命令现在将报告在两个快照之间修改的文件:

$ zfs diff tank/@20120716 tank@20120717
M       /tank/examplevm/examplevm-flat.vmdk
Run Code Online (Sandbox Code Playgroud)

虽然很高兴知道文件已被修改,但我对 vmdk 中已修改的字节/块数更感兴趣。

因此,我对以下问题的任何提示感兴趣:

  • ZFS 是否具有报告两个快照之间特定文件中已更改块数的功能?
  • 有没有其他工具可以对两个文件系统映像进行二进制比较并报告更改的块或字节数?我意识到这样cmp –l file1 file2 | wc –l做,但它是可怕的,可怕的慢。

zfs diff

10
推荐指数
1
解决办法
2661
查看次数

两个目录的不同文件

我想比较两个目录。我尝试了 diff,但它包含文件内的更改。我想要的只是这样的

file a is just in /A 
file b is missing in /A 
file c changed
directory d is missing in /A 
directory e is just in /A
Run Code Online (Sandbox Code Playgroud)

我认为这在进行完整文件修补时很常见,但我不知道一个好的解决方案。

linux directory patch diff

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

将 tar 内容与本地文件夹进行比较

我想将 tar 存档(备份$HOME)的内容与我本地的内容进行比较,$HOME以查看 tar 文件中是否存在尚未存在于本地文件系统中的文件。

最好的方法是什么?

我已经试过了tar -dvf archive.tar *$HOME但输出并不是很令人满意。它表示tar: Videos: Not found in archive对于第一个目录级别的某些文件和文件夹,尽管它们在存档中,然后退出tar: Exiting with failure status due to previous errors(退出代码 2)。

编辑:它在 Ubuntu 10.04 上,我对 bash 非常熟悉。

tar diff

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

比较两台 RHEL 服务器的操作系统配置

比较两个(或多个)RHEL 5.X 服务器的操作系统配置的最佳方法是什么?是否有任何工具/包可用于执行此操作?请注意,我主要是在寻找可调的操作系统(内核参数等)。

我想补充一下我们希望这样做的原因:

  1. 我们拥有大量的 zLinux 资源,并且想将我们的“标准构建”与供应商提供的发行版进行比较。zLinux 是一种特殊的体系结构,并且通常具有与 x86_64 不同的推荐设置。

  2. 如果我们有一个高度可用的服务器集群,要比较/确保它们之间的操作系统配置是一致的。

注意:我不是在寻找像 puppet 或 Chef 这样的集中式解决方案。我同意这些是路线图上的最佳解决方案,但不是我现在正在寻找的 :)

linux redhat diff

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

是否有产生目标文件权限差异的命令?

就像听起来一样,我试图找出是否有一个(标准)命令会产生两个文件和/或目录树之间的权限差异。

理想情况下,它会发布一个补丁文件,该文件可用于更改权限以匹配目标,但我猜测因为标准补丁文件是由 ed 解释的,所以它可能必须是一种单独的格式。

filesystems permissions patch diff

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

debian,差异,配置默认值

我想知道是否有可能获得已安装 debian 软件包的原始配置文件与当前配置文件的差异。

如果找到显示修改后的配置文件的答案,但我找不到生成差异的方法。

命令是

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}' | sort | less
Run Code Online (Sandbox Code Playgroud)

debian configuration diff dpkg deb

6
推荐指数
1
解决办法
841
查看次数

如何将特定的虚拟机快照导出为原始磁盘映像

我为我的朋友创建了一个 Linux 设备。这是一个小型的 Ubuntu 安装,配置了 Trac、lighthttp 和 ufw。

我是用 VirtualBox 做的。

现在我想导出最新的快照版本,其中所有内容都受到保护并配置为原始磁盘映像,以便与 KVM 一起使用。

现在我想知道我是否因为不知道如何导出而浪费了几个小时的工作。

我已经浏览了互联网,但材料数量巨大,而且我还没有找到与我想做的事情类似的描述。

是否可以?

virtualbox snapshot diff export kvm-virtualization

5
推荐指数
2
解决办法
6423
查看次数

rsnapshot 快照之间的差异

rsnapshot用来管理一些 GNU/Linux 服务器的增量备份。

虽然rsnapshot提供了一个名为rsnapshot-diff它的工具,但它只提供磁盘空间统计信息。

问题是如何在特定快照上获取差异:新文件和已删除文件。

我读过类似的建议

# find /raid/rap/$interval -type f -links 1 -exec du -k {} \; | sort -rn
Run Code Online (Sandbox Code Playgroud)

但它不适用于我的快照。我确实修改了一个文件,并在新的 hourly.0 快照之后立即运行上面的一个 liner 并且没有报告任何差异。虽然如果我运行它

# find /raid/rap/$interval -type f -links 2 -exec du -k {} \; | sort -rn
Run Code Online (Sandbox Code Playgroud)

报告修改后的文件。为什么修改后的文件有两个链接?

diff rsnapshot forensics

5
推荐指数
1
解决办法
3043
查看次数