This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Printf" Unix – news · newspapers · books · scholar · JSTOR (July 2010) (Learn how and when to remove this template message)
Developer(s)Various open-source and commercial developers
Operating systemUnix and Unix-like
Licensecoreutils: GPLv3+[1]

In Unix and Unix-like operating systems, printf ("print formatted") is a shell builtin (and utility program[2]) that formats and prints data.

The command accepts a printf format string, which specifies methods for formatting items, and a list of items to be formatted. Named historically after the intention of printing to a printer, it now actually outputs to stdout.[3] Characters in the format string are copied to the output or, if a % is encountered, are used to format an item. In addition to the standard formats, %b causes printf to expand backslash escape sequences (for example \n for newline), and %q outputs an item that can be used as shell input.[3] The format string is reused if there are more items than format specs. Unused format specs provide a zero value or null string.


printf is part of the X/Open Portability Guide since issue 4 of 1992. It was inherited into the first version of POSIX.1 and the Single Unix Specification.[4] It first appeared in 4.3BSD-Reno.[5]

The version of printf bundled in GNU coreutils was written by David MacKenzie. It has an extension %q for escaping strings in POSIX-shell format.[3]


$ for NUMBER in  4 6 8 9 10
> do printf " >> %03d %d<< \n" $NUMBER $RANDOM
> done
 >> 004 26305<<
 >> 006 6687<<
 >> 008 20170<<
 >> 009 28322<<
 >> 010 4400<<

This will print a directory listing, emulating 'ls':

printf "%s\n" *

See also


  1. ^ "printf(1): format/print data - Linux man page".
  2. ^ "GNU Coreutils".
  3. ^ a b c printf(1) – Linux User Manual – User Commands
  4. ^ printf – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  5. ^ printf(1) – FreeBSD General Commands Manual