find: Print File Information

 
 3.2 Print File Information
 ==========================
 
  -- Action: -ls
      True; list the current file in 'ls -dils' format on the standard
      output.  The output looks like this:
 
           204744   17 -rw-r--r--   1 djm      staff       17337 Nov  2  1992 ./lwall-quotes
 
      The fields are:
 
        1. The inode number of the file.  ⇒Hard Links, for how to
           find files based on their inode number.
 
        2. the number of blocks in the file.  The block counts are of 1K
           blocks, unless the environment variable 'POSIXLY_CORRECT' is
           set, in which case 512-byte blocks are used.  ⇒Size,
           for how to find files based on their size.
 
        3. The file's type and file mode bits.  The type is shown as a
           dash for a regular file; for other file types, a letter like
           for '-type' is used (⇒Type).  The file mode bits are
           read, write, and execute/search for the file's owner, its
           group, and other users, respectively; a dash means the
           permission is not granted.  ⇒File Permissions, for more
           details about file permissions.  ⇒Mode Bits, for how to
           find files based on their file mode bits.
 
        4. The number of hard links to the file.
 
        5. The user who owns the file.
 
        6. The file's group.
 
        7. The file's size in bytes.
 
        8. The date the file was last modified.
 
        9. The file's name.  '-ls' quotes non-printable characters in the
           file names using C-like backslash escapes.  This may change
           soon, as the treatment of unprintable characters is harmonised
           for '-ls', '-fls', '-print', '-fprint', '-printf' and
           '-fprintf'.
 
  -- Action: -fls file
      True; like '-ls' but write to FILE like '-fprint' (⇒Print File
      Name).  The named output file is always created, even if no
      output is sent to it.
 
  -- Action: -printf format
      True; print FORMAT on the standard output, interpreting '\' escapes
      and '%' directives (more details in the following sections).
 
      Field widths and precisions can be specified as with the 'printf' C
      function.  Format flags (like '#' for example) may not work as you
      expect because many of the fields, even numeric ones, are printed
      with %s.  Numeric flags which are affected in this way include 'G',
      'U', 'b', 'D', 'k' and 'n'.  This difference in behaviour means
      though that the format flag '-' will work; it forces left-alignment
      of the field.  Unlike '-print', '-printf' does not add a newline at
      the end of the string.  If you want a newline at the end of the
      string, add a '\n'.
 
      As an example, an approximate equivalent of '-ls' with
      null-terminated filenames can be achieved with this '-printf'
      format:
 
           find -printf "%i %4k %M %3n %-8u %-8g %8s %T+ %p\n->%l\0" | cat
 
      A practical reason for doing this would be to get literal filenames
      in the output, instead of '-ls''s backslash-escaped names.  (Using
      'cat' here prevents this happening for the '%p' format specifier;
      ⇒Unusual Characters in File Names).  This format also
      outputs a uniform timestamp format.
 
      As for symbolic links, the format above outputs the target of the
      symbolic link on a second line, following '\n->'.  There is nothing
      following the arrow for file types other than symbolic links.
      Another approach, for complete consistency, would be to '-fprintf'
      the symbolic links into a separate file, so they too can be
      null-terminated.
 
  -- Action: -fprintf file format
      True; like '-printf' but write to FILE like '-fprint' (⇒Print
      File Name).  The output file is always created, even if no output
      is ever sent to it.
 

Menu