.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.\" Modified Sat Jul 24 17:35:15 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Sun Feb 19 22:02:32 1995 by Rik Faith <faith@cs.unc.edu>
.\" Modified Tue Oct 22 23:28:12 1996 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified Sun Jan 26 21:56:56 1997 by Ralph Schleicher
.\"    <rs@purple.UL.BaWue.DE>
.\" Modified Mon Jun 16 20:24:58 1997 by Nicolás Lichtmaier <nick@debian.org>
.\" Modified Sun Oct 18 22:11:28 1998 by Joseph S. Myers <jsm28@cam.ac.uk>
.\" Modified Mon Nov 16 17:24:47 1998 by Andries Brouwer <aeb@cwi.nl>
.\" Modified Thu Nov 16 23:28:25 2000 by David A. Wheeler
.\"    <dwheeler@dwheeler.com>
.\"
.\" "nroff" ("man") (or "tbl") needs a long page to avoid warnings
.\" from "grotty" (at imagined page breaks).  Bug in grotty?
.if n .pl 1000v
.TH SUFFIXES 7  2017-09-15 "Linux" "Linux Programmer's Manual"
.SH NAME
suffixes \- list of file suffixes
.SH DESCRIPTION
It is customary to indicate the contents of a file with the file suffix,
which consists of a period, followed by one or more letters.
Many standard utilities, such as compilers, use this to recognize the type of
file they are dealing with.
The
.BR make (1)
utility is driven by rules based on file suffix.
.PP
Following is a list of suffixes which are likely to be found on a
Linux system.
.PP
.TS
l | l
_ | _
lI |  l .
Suffix	File type
 ,v	files for RCS (Revision Control System)
 -	backup file
 .C	C++ source code, equivalent to \fI.cc\fP
 .F	Fortran source with \fBcpp\fP(1) directives
	or file compressed using freeze
 .S	assembler source with \fBcpp\fP(1) directives
 .Y	file compressed using yabba
 .Z	file compressed using \fBcompress\fP(1)
 .[0-\9]+gf	TeX generic font files
 .[0\-9]+pk	TeX packed font files
 .[1\-9]	manual page for the corresponding section
 .[1\-9][a-z]	manual page for section plus subsection
 .a	static object code library
 .ad	X application default resource file
 .ada	Ada source (may be body, spec, or combination)
 .adb	Ada body source
 .ads	Ada spec source
 .afm	PostScript font metrics
 .al	Perl autoload file
 .am	\fBautomake\fP(1) input file
 .arc	\fBarc\fP(1) archive
 .arj	\fBarj\fP(1) archive
 .asc	PGP ASCII-armored data
 .asm	(GNU) assembler source file
 .au	Audio sound file
 .aux	LaTeX auxiliary file
 .avi	(msvideo) movie
 .awk	AWK language program
 .b	LILO boot loader image
 .bak	backup file
 .bash	\fBbash\fP(1) shell script
 .bb	basic block list data produced by
	gcc \-ftest\-coverage
 .bbg	basic block graph data produced by
	gcc \-ftest\-coverage
 .bbl	BibTeX output
 .bdf	X font file
 .bib	TeX bibliographic database, BibTeX input
 .bm	bitmap source
 .bmp	bitmap
 .bz2	file compressed using \fBbzip2\fP(1)
 .c	C source
 .cat	message catalog files
 .cc	C++ source
 .cf	configuration file
 .cfg	configuration file
 .cgi	WWW content generating script or program
 .cls	LaTeX Class definition
 .class	Java compiled byte-code
 .conf	configuration file
 .config	configuration file
 .cpp	equivalent to \fI.cc\fR
 .csh	\fBcsh\fP(1) shell script
 .cxx	equivalent to \fI.cc\fR
 .dat	data file
 .deb	Debian software package
 .def	Modula-2 source for definition modules
 .def	other definition files
 .desc	initial part of mail message unpacked with
	\fBmunpack\fP(1)
 .diff	file differences (\fBdiff\fP(1) command output)
 .dir	dbm data base directory file
 .doc	documentation file
 .dsc	Debian Source Control (source package)
 .dtx	LaTeX package source file
 .dvi	TeX's device independent output
 .el	Emacs-Lisp source
 .elc	compiled Emacs-Lisp source
 .eps	encapsulated PostScript
 .exp	Expect source code
 .f	Fortran source
 .f77	Fortran 77 source
 .f90	Fortran 90 source
 .fas	precompiled Common-Lisp
 .fi	Fortran include files
 .fig	FIG image file (used by \fBxfig\fP(1))
 .fmt	TeX format file
 .gif	Compuserve Graphics Image File format
 .gmo	GNU format message catalog
 .gsf	Ghostscript fonts
 .gz	file compressed using \fBgzip\fP(1)
 .h	C or C++ header files
 .help	help file
 .hf	equivalent to \fI.help\fP
 .hlp	equivalent to \fI.help\fP
 .htm	poor man's \fI.html\fP
 .html	HTML document used with the World Wide Web
 .hqx	7-bit encoded Macintosh file
 .i	C source after preprocessing
 .icon	bitmap source
 .idx	reference or datum-index file for hypertext
	or database system
 .image	bitmap source
 .in	configuration template, especially for GNU Autoconf
 .info	files for the Emacs info browser
 .info-[0\-9]+	split info files
 .ins	LaTeX package install file for docstrip
 .itcl	itcl source code;
	itcl ([incr Tcl]) is an OO extension of tcl
 .java	a Java source file
 .jpeg	Joint Photographic Experts Group format
 .jpg	poor man's \fI.jpeg\fP
 .kmap	\fBlyx\fP(1) keymap
 .l	equivalent to \fI.lex\fP or \fI.lisp\fP
 .lex	\fBlex\fP(1) or \fBflex\fP(1) files
 .lha	lharc archive
 .lib	Common-Lisp library
 .lisp	Lisp source
 .ln	files for use with \fBlint\fP(1)
 .log	log file, in particular produced by TeX
 .lsm	Linux Software Map entry
 .lsp	Common-Lisp source
 .lzh	lharc archive
 .m	Objective-C source code
 .m4	\fBm4\fP(1) source
 .mac	macro files for various programs
 .man	manual page (usually source rather than formatted)
 .map	map files for various programs
 .me	Nroff source using the me macro package
 .mf	Metafont (font generator for TeX) source
 .mgp	MagicPoint file
 .mm	sources for \fBgroff\fP(1) in mm - format
 .mo	Message catalog binary file
 .mod	Modula-2 source for implementation modules
 .mov	(quicktime) movie
 .mp	Metapost source
 .mp2	MPEG Layer 2 (audio) file
 .mp3	MPEG Layer 3 (audio) file
 .mpeg	movie file
 .o	object file
 .old	old or backup file
 .orig	backup (original) version of a file, from \fBpatch\fP(1)
 .out	output file, often executable program (a.out)
 .p	Pascal source
 .pag	dbm data base data file
 .patch	file differences for \fBpatch\fP(1)
 .pbm	portable bitmap format
 .pcf	X11 font files
 .pdf	Adobe Portable Data Format
	(use Acrobat/\fBacroread\fP or \fBxpdf\fP)
 .perl	Perl source (see .ph, .pl and .pm)
 .pfa	PostScript font definition files, ASCII format
 .pfb	PostScript font definition files, binary format
 .pgm	portable greymap format
 .pgp	PGP binary data
 .ph	Perl header file
 .php	PHP program file
 .php3	PHP3 program file
 .pid	File to store daemon PID (e.g., crond.pid)
 .pl	TeX property list file or Perl library file
 .pm	Perl module
 .png	Portable Network Graphics file
 .po	Message catalog source
 .pod	\fBperldoc\fP(1) file
 .ppm	portable pixmap format
 .pr	bitmap source
 .ps	PostScript file
 .py	Python source
 .pyc	compiled python
 .qt	quicktime movie
 .r	RATFOR source (obsolete)
 .rej	patches that \fBpatch\fP(1) couldn't apply
 .rpm	RPM software package
 .rtf	Rich Text Format file
 .rules	rules for something
 .s	assembler source
 .sa	stub libraries for a.out shared libraries
 .sc	\fBsc\fP(1) spreadsheet commands
 .scm	Scheme source code
 .sed	sed source file
 .sgml	SGML source file
 .sh	\fBsh\fP(1) scripts
 .shar	archive created by the \fBshar\fP(1) utility
 .so	Shared library or dynamically loadable object
 .sql	SQL source
 .sqml	SQML schema or query program
 .sty	LaTeX style files
 .sym	Modula-2 compiled definition modules
 .tar	archive created by the \fBtar\fP(1) utility
 .tar.Z	tar(1) archive compressed with \fBcompress\fP(1)
 .tar.bz2	tar(1) archive compressed with \fBbzip2\fP(1)
 .tar.gz	tar(1) archive compressed with \fBgzip\fP(1)
 .taz	tar(1) archive compressed with \fBcompress\fP(1)
 .tcl	tcl source code
 .tex	TeX or LaTeX source
 .texi	equivalent to \fI.texinfo\fP
 .texinfo	Texinfo documentation source
 .text	text file
 .tfm	TeX font metric file
 .tgz	tar archive compressed with \fBgzip\fP(1)
 .tif	poor man's \fI.tiff\fP
 .tiff	Tagged Image File Format
 .tk	tcl/tk script
 .tmp	temporary file
 .tmpl	template files
 .txt	equivalent to \fI.text\fP
 .uu	equivalent to \fI.uue\fP
 .uue	binary file encoded with \fBuuencode\fP(1)
 .vf	TeX virtual font file
 .vpl	TeX virtual property list file
 .w	Silvio Levi's CWEB
 .wav	wave sound file
 .web	Donald Knuth's WEB
 .wml	Source file for Web Meta Language
 .xbm	X11 bitmap source
 .xcf	GIMP graphic
 .xml	eXtended Markup Language file
 .xpm	X11 pixmap source
 .xs	Perl xsub file produced by h2xs
 .xsl	XSL stylesheet
 .y	\fByacc\fP(1) or \fBbison\fP(1) (parser generator) files
 .z	File compressed using \fBpack\fP(1) (or an old \fBgzip\fP(1))
 .zip	\fBzip\fP(1) archive
 .zoo	\fBzoo\fP(1) archive
 ~	Emacs or \fBpatch\fP(1) backup file
 rc	startup (`run control') file, e.g., \fI.newsrc\fP
.TE
.SH CONFORMING TO
General UNIX conventions.
.SH BUGS
This list is not exhaustive.
.SH SEE ALSO
.BR file (1),
.BR make (1)
