In this article, we will show how to compare or find the difference between local and remote files in Linux. In a recent post, we reviewed 9 best file comparison and difference (Diff) tools for Linux. One of the tools we covered was diff.
diff (short for difference) is a simple and easy to use tool which analyzes two files and displays the differences in the files by comparing the files line by line. It prints the lines that are different. Importantly, if you want the two files to be identical to each other, diff also outputs a set of useful instructions on how to change one file to make it identical to the second file.
To compare or find the difference between two files on different servers, run the following command. Remember to replace the user and remote host with your actual parameters.
$ ssh user@remote-host "cat /home/root/file_remote" | diff - file_local
Note that you can also save the difference between the two files to a file, using the output redirection feature. For example:
$ ssh user@remote-host "cat /home/root/file_remote" | diff - file_local > diff_output.txt
Then use a cat command to view the contents of the diff_output.txt file.
$ cat diff_output.txt OR $ bcat diff_output.txt
In addition, you can also compare or find the difference between two files on two remote servers, as shown:
$ diff <(ssh user@remote-host1 'cat /path/to/file1') <(ssh user@remote-host2 'cat /path/to/file2')
For more information, consult the diff man page as shown.
$ man diff
Also, check out:
- How to Find Difference Between Two Directories Using Diff and Meld Tools
- Linux sdiff Command Examples for Linux Newbies
- A – Z Linux Commands – Overview with Examples
That’s it for now! In this article, we have shown how to compare or find the difference between two files on different servers. Share your thoughts with us or ask questions via the feedback form below.