title: How unix's strings command works?
body: <p><code>strings</code> command prints strings of printable characters in a binary file. </p>
  
  <p>I am curious to know how it works on a high level. </p>
  
  <p>It shouldn't be straightforward since each binary file has a different format, from executables to PDFs and others. So each byte can mean different things from an ASCII/Unicode character to other metadata. </p>
  
  <p>So does it know all those binary file formats? Then, in that case it won't be able to work with some new type or cutsom binary file.</p>
  
  <p>UPDATE: I know what strings command does. I just want to know how it does what it does. </p>