如何比较 Linux 中的本地和远程文件
在本文中,我们将讨论如何比较或区分 Linux 中的本地和远程文件。
程序员和作家在编写程序文件或常规文本文件时,经常想知道两个文件或同一文件的两个副本之间的区别。两个 Linux 机器文件的内容之间的差异称为差异。著名的 Unix 命令行文件比较工具 diff 的性能参考启发了这个定义。
diff(差异的缩写)是一个简单直接的工具,可以逐行比较两个文件并显示它们之间的差异。它打印不同的行。重要的是,如果您希望两个文件相似,diff 还会生成一组说明,用于说明如何修改一个文件以使其与另一个文件相同。
假设您有两个文件:
file_local.txt
Hello World..!!
Ubuntu
CentOS
Windows
Hello world..!!
Kubuntu
Ubuntu
CentOS
Windows
运行以下命令来比较或识别不同服务器上的两个文件之间的差异。请记住将用户和远程主机更改为您自己的值。
$ ssh user@remote_host “cat /home/root/remote_file” | diff – file_local
输出:
在类 Linux/Unix 操作系统中,cat(“concatenate”的缩写)命令是最常用的命令之一。我们可以使用 cat 命令来构建单个或多个文件、显示它们的内容、连接文件并将输出重定向到终端或文件。您还可以使用输出重定向选项来保存两个文件之间的差异。
$ ssh user@remote_host “cat /home/root/remote_file” | diff – file_local > output_diff.txt
然后可以使用 cat 命令查看 diff output.txt 文件的内容。
$ cat output_diff.txt
OR
$ bcat output_diff.txt
输出:
您还可以比较或注意两个不同远程服务器上的两个文件之间的差异,如下所示:
$ diff <(ssh user@remote_host1 ‘cat /path/to/file_1’) <(ssh user@remote_host2 ‘cat /path/to/file_2’)
请参阅 diff 手册页以获取更多详细信息,如图所示。
$ man diff
如果您想对终端会话采取更直观的方法,午夜指挥官中有一个远程文件系统选项和一个可视化文件比较选项。许多 Linux 系统默认没有安装它,但它在大多数基本存储库中可用。以下是要采取的步骤:
- 在包含要比较的文件的文件夹中,运行午夜指挥官(命令:mc)。
- 在另一端(例如右侧菜单)的同一文件夹(sftp:/@/)中建立到另一台服务器的 sftp 连接。
- 选择/突出显示要与 ins 键进行比较的文件。 (选项卡在左右面板之间切换。)
- 从命令菜单中选择比较文件。
在大多数终端会话中,可以使用鼠标访问午夜指挥官菜单。如果这不起作用,F9 将带您进入菜单。