File tests each argument in an attempt to classify it. There are three sets of tests, performed in this order: filesystem tests, magic number tests, and language tests. The first test that succeeds causes the file type to be printed.
Starting with version 4, the file command is not much more than a wrapper around the "magic" library.
These details are provided for information only. No information here is legal advice and should not be used as such.