使用远程服务器时,如果需要本地计算机文件夹和远程服务器上的文件夹不同文件差异,可以使用diff命令吗?Diff命令属于简单易用工具,能分析两个文件逐行比较文件显示文件中的差异。可以打出不同的行,如果希望两个文件彼此相同,diff还会输出一组有用命令来说明如何更改一个文件使它同第二个文件相同。可以用以下命令,实际参数替换成用户和远程主机:
$ ssh 用户@远程主机“cat /home/root/file_remote”| diff - file_local
还可以输出重定向功能把两个文件之间差异存在文件中,如:
$ ssh 用户@远程主机“cat /home/root/file_remote”| diff - file_local > diff_output.txt
使用cat命令查看diff-output.txt文件内容:
$ cat diff_输出.txt
或者
$ bcat diff_输出.txt
对比查看两个远程服务器上文件差异。如:
$ diff <(ssh 用户@远程主机1'cat /path/to/file1') <(ssh 用户@远程主机2'cat /path/to/file2')
如果想了解更多关于diff使用,可以阅读diff手册页:
$ man diff
新手朋友可以先尝试使用sdiff,这个命令比较简单可以用于显示两个文件之间差异来用交互方式合并,易于使用并附带简单的使用选项。比如:
$ sdiff option... file1 file2
sidff也可以在Linux中显示两个文件差异,把两个文件并排显示合并后的差异:
$ cal >cal.txt
$ df -h >du.txt
$ sdiff du.txt cal.txt
还可以把全部文件都视为文本文件来进行对比,不管是否是文本文件:
$ sdiff -a du.txt cal.txt
当文件空格较多可以用sdiff来比较忽略全部空格:
$ sdiff -W du.txt cal.txt
还可以用sdiff忽略行尾空格:
$ sdiff -z du.txt cal.txt
还可以用标志指示sdiff忽略因为制表符扩展导致的更改:
$ sdiff -E du.txt cal.txt
对比差异时忽略大小:
$ sdiff -i du.txt cal.txt
比较时忽略空行:
$ sdiff -B du.txt cal.txt
设置列数默认为130:
$ sdiff -w 150 du.txt cal.txt
把输出的制表符扩展为空格:
$ sdiff -t du.txt cal.txt
用更具体的方式运行并输出存为文件,看到文件标识后按Enter获取交互式菜单。
$ sdiff du.txt cal.txt -o sdiff.txt
Diff program开关允许调用除了sdiff本身之外的另一个命令行工具来比较文件,例如,调用所示的diff程序。
$ sdiff --diff-program=diff du.txt cal.txt
更多信息可以查阅sdiff手册页:
$ man sdiff
需要更多帮助可继续关注华纳云!