How to Compare Files With Diff Updated on October 31, 2023 by InMotion Hosting Contributor 3 Minutes, 21 Seconds to Read There are an infinite number of situations in which you will be required to compare two files to see where they are the same or different. This is especially important when managing multiple configuration files in a VPS web server. You can analyze each file yourself line by line, but that could take a ridiculously long time, and there’s now way to be sure whether or not your hard analyses introduced even more errors. How To Use The diff Command Comparing Two Files Useful and Interesting diff Options Practical Use Cases For Diff Server Configuration Files Files Edited by Other Users How To Use The diff Command In order to use the diff command you will of course need to have SSH access to your server. These commands are all run from a command prompt. Comparing Two Files Classic example of a diff command: diff <first-file> <second-file> Here’s a working example, and it’s output: diff first-file second-file @@ -1 +1 @@ -This is the first file \ No newline at end of file +This is the second file \ No newline at end of file Some terminal emulators will color the output to point out exactly what is different: Useful and Interesting diff Options Most interestingly, if you don’t need to know anything other than whether or not two files are identical, you can use the -s option. For this example I have created two files called “cat” and “dog” which both have identical contents. Using the -s option you can see they are exactly alike: diff -s cat dog The result is: Files cat and dog are identical If the files are not identical, the command will result in nothing. In some cases, it can be helpful to paginate the output. As in the case of printing an output for review, you can have diff paginate its output using the pr command. diff -l cat dog The output: 2021-06-15 10:32 diff -l first-file second-file Page 1 1c1 < This is the first file \ No newline at end of file --- > This is the second file \ No newline at end of file Notice the output contains a header with date, files compared, and a page number. This command can be output to a command line printer program like lp or lpr and printed on paper. For a complete listing of options be sure to visit the complete diffutils documentation. Practical Use Cases For Diff There are many practical use cases for applying diff in real world situations. You can probably think of a dozen, but here are a few that you are sure to encounter at some point, and for which you could easily justify coming up with a diff workflow today. Server Configuration Files Your server configuration is precious. Many mission-critical systems running inside your server depend on a few configuration files to make sure all services are tweaked properly and running efficiently. One little change in these configurations can cause a potential catastrophe. There are instances in which other programs can write data to configuration files. If you find yourself in such an instance you can use diff to compare a current configuration with a backup. Assuming that the configuration you backed up previous was working as expected, you can use diff to compared current files with archived files to isolate the cause of system issues. But remember, some system files may not be accessible at all user levels. Some file may require root access, which you can only get at the VPS or dedicated level. (Unsure about VPS vs a dedicated server?) Files Edited by Other Users Imagine that multiple users are accessing the same set of files. If someone changed a file, how would you know? You are sure to be aware of the error if something breaks, but that would be late. But with the diff command you can check any mission critical files for changes and easily identify potential issues, or at least have an easier time triangulating the most likely cause of an error. Share this Article InMotion Hosting Contributor Content Writer InMotion Hosting contributors are highly knowledgeable individuals who create relevant content on new trends and troubleshooting techniques to help you achieve your online goals! More Articles by InMotion Hosting Related Articles Understanding Linux Operating Systems How to Install Python 3.9 on CentOS 7 Speed Up grep Searches with LC_ALL=C How To Install RubyGems On Linux unrar and rar Commands 5 Ways to Find a File in Linux Setting Your PHP Settings in Command Line How to Check the Memory Usage on Linux How to Send Files to the Trash Can in Linux with Gio Trash How to Merge PDF Files in the Linux Terminal