neulab/tldr huggingface dataset:
LLVM-OBJDUMP(1)                       LLVM                       LLVM-OBJDUMP(1)
llvm-objdump - LLVM's object file dumper
llvm-objdump [commands] [options] [filenames...]
The llvm-objdump utility prints the contents of object files and final linked images named on the command line. If no file name is specified, llvm-objdump will attempt to read from a.out. If - is used as a file name, llvm-objdump will process a file on its standard input stream.
At least one of the following commands are required, and some commands can be combined with other commands:
-a, --archive-headers Display the information contained within an archive's headers.
-d, --disassemble Disassemble all text sections found in the input files.
-D, --disassemble-all Disassemble all sections found in the input files.
--disassemble-symbols=<symbol1[,symbol2,...]> Disassemble only the specified symbols. Takes demangled symbol names when --demangle is specified, otherwise takes mangled symbol names.  Implies --disassemble.
--dwarf=<value> Dump the specified DWARF debug sections. The supported values are:
frames - .debug_frame
-f, --file-headers Display the contents of the overall file header.
--fault-map-section Display the content of the fault map section.
-h, --headers, --section-headers Display summaries of the headers for each section.
--help Display usage information and exit. Does not stack with other commands.
-p, --private-headers Display format-specific file headers.
-r, --reloc Display the relocation entries in the file.
-R, --dynamic-reloc Display the dynamic relocation entries in the file.
--raw-clang-ast Dump the raw binary contents of the clang AST section.
-s, --full-contents Display the contents of each section.
-t, --syms Display the symbol table.
-T, --dynamic-syms Display the contents of the dynamic symbol table.
-u, --unwind-info Display the unwind info of the input(s).
-v, --version Display the version of the llvm-objdump executable. Does not stack with other commands.
-x, --all-headers Display all available header information. Equivalent to specifying --archive-headers, --file-headers, --private-headers, --reloc, --section-headers, and --syms.
llvm-objdump supports the following options:
--adjust-vma=<offset> Increase the displayed address in disassembly or section header printing by the specified offset.
--arch-name=<string> Specify the target architecture when disassembling. Use --version for a list of available targets.
-C, --demangle Demangle symbol names in the output.
--debug-vars=<format> Print the locations (in registers or memory) of source-level variables alongside disassembly. format may be unicode or ascii, defaulting to unicode if omitted.
--debug-vars-indent=<width> Distance to indent the source-level variable display, relative to the start of the disassembly. Defaults to 52 characters.
-j, --section=<section1[,section2,...]> Perform commands on the specified sections only. For Mach-O use segment,section to specify the section name.
-l, --line-numbers When disassembling, display source line numbers. Implies --disassemble.
-M, --disassembler-options=<opt1[,opt2,...]> Pass target-specific disassembler options. Available options:
• reg-names-std: ARM only (default). Print in ARM 's instruction set documentation, with r13/r14/r15 replaced by sp/lr/pc.
• reg-names-raw: ARM only. Use r followed by the register number.
• no-aliases: AArch64 and RISC-V only. Print raw instruction mnemonic instead of pesudo instruction mnemonic.
• numeric: RISC-V only. Print raw register names instead of ABI mnemonic. (e.g. print x1 instead of ra)
• att: x86 only (default). Print in the AT&T syntax.
• intel: x86 only. Print in the intel syntax.
--mcpu=<cpu-name> Target a specific CPU type for disassembly. Specify --mcpu=help to display available CPUs.
--mattr=<a1,+a2,-a3,...> Enable/disable target-specific attributes. Specify --mattr=help to display the available attributes.
--no-leading-addr When disassembling, do not print leading addresses.
--no-print-imm-hex Do not use hex format for immediate values in disassembly output (default).
--no-show-raw-insn When disassembling, do not print the raw bytes of each instruction.
--prefix=<prefix> When disassembling with the --source option, prepend prefix to absolute paths.
--prefix-strip=<level> When disassembling with the --source option, strip out level initial directories from absolute paths. This option has no effect without --prefix.
--print-imm-hex Use hex format when printing immediate values in disassembly output.
-S, --source When disassembling, display source interleaved with the disassembly. Implies --disassemble.
--show-lma Display the LMA column when dumping ELF section headers. Defaults to off unless any section has different VMA and LMAs.
--start-address=<address> When disassembling, only disassemble from the specified address.
When printing relocations, only print the relocations patching offsets from at least address.
When printing symbols, only print symbols with a value of at least address.
--stop-address=<address> When disassembling, only disassemble up to, but not including the specified address.
When printing relocations, only print the relocations patching offsets up to address.
When printing symbols, only print symbols with a value up to address.
--symbolize-operands When disassembling, symbolize a branch target operand to print a label instead of a real address.
When printing a PC-relative global symbol reference, print it as an offset from the leading symbol.
Only works with an X86 linked image.
Example: A non-symbolized branch instruction with a local target and pc-relative memory access like
cmp eax, dword ptr [rip + 4112] jge 0x20117e <_start+0x25>
might become
<L0>: cmp eax, dword ptr <g> jge      <L0>
--triple=<string> Target triple to disassemble for, see --version for available targets.
-w, --wide Ignored for compatibility with GNU objdump.
--x86-asm-syntax=<style> Deprecated.  When used with --disassemble, choose style of code to emit from X86 backend. Supported values are:
att    AT&T-style assembly
intel  Intel-style assembly
The default disassembly style is att.
-z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling.
@<FILE> Read command-line options and commands from response file <FILE>.
MACH-O ONLY OPTIONS AND COMMANDS --arch=<architecture> Specify the architecture to disassemble. see --version for available architectures.
--archive-member-offsets Print the offset to each archive member for Mach-O archives (requires --archive-headers).
--bind Display binding info
--data-in-code Display the data in code table.
--dis-symname=<name> Disassemble just the specified symbol's instructions.
--dylibs-used Display the shared libraries used for linked files.
--dsym=<string> Use .dSYM file for debug info.
--dylib-id Display the shared library's ID for dylib files.
--exports-trie Display exported symbols.
--function-starts Print the function starts table for Mach-O objects.
-g     Print line information from debug info if available.
--full-leading-addr Print the full leading address when disassembling.
--indirect-symbols Display the indirect symbol table.
--info-plist Display the info plist section as strings.
--lazy-bind Display lazy binding info.
--link-opt-hints Display the linker optimization hints.
-m, --macho Use Mach-O specific object file parser. Commands and other options may behave differently when used with --macho.
--no-leading-headers Do not print any leading headers.
--no-symbolic-operands Do not print symbolic operands when disassembling.
--non-verbose Display the information for Mach-O objects in non-verbose or numeric form.
--objc-meta-data Display the Objective-C runtime meta data.
--private-header Display only the first format specific file header.
--rebase Display rebasing information.
--rpaths Display runtime search paths for the binary.
--universal-headers Display universal headers.
--weak-bind Display weak binding information.
--symbol-description Add symbol description to disassembly output.
To report bugs, please visit <https://bugs.llvm.org/>.
llvm-nm(1), llvm-otool(1), llvm-readelf(1), llvm-readobj(1)
DWEBP(1)                     General Commands Manual                    DWEBP(1)
dwebp - decompress a WebP file to an image file
dwebp [options] input_file.webp
This manual page documents the dwebp command.
dwebp decompresses WebP files into PNG, PAM, PPM or PGM images.  Note: Animated WebP files are not supported.
The basic options are:
-h     Print usage summary.
-version Print the version number (as major.minor.revision) and exit.
-o string Specify the name of the output file (as PNG format by default). Using "-" as output name will direct output to 'stdout'.
-- string Explicitly specify the input file. This option is useful if the input file starts with an '-' for instance. This option must appear last.  Any other options afterward will be ignored. If the input file is "-", the data will be read from stdin instead of a file.
-bmp   Change the output format to uncompressed BMP.
-tiff  Change the output format to uncompressed TIFF.
-pam   Change the output format to PAM (retains alpha).
-ppm   Change the output format to PPM (discards alpha).
-pgm   Change the output format to PGM. The output consists of luma/chroma samples instead of RGB, using the IMC4 layout. This option is mainly for verification and debugging purposes.
-yuv   Change the output format to raw YUV. The output consists of luma/chroma-U/chroma-V samples instead of RGB, saved sequentially as individual planes. This option is mainly for verification and debugging purposes.
-nofancy Don't use the fancy upscaler for YUV420. This may lead to jaggy edges (especially the red ones), but should be faster.
-nofilter Don't use the in-loop filtering process even if it is required by the bitstream. This may produce visible blocks on the non- compliant output, but it will make the decoding faster.
-dither strength Specify a dithering strength between 0 and 100. Dithering is a post-processing effect applied to chroma components in lossy compression.  It helps by smoothing gradients and avoiding banding artifacts.
-alpha_dither If the compressed file contains a transparency plane that was quantized during compression, this flag will allow dithering the reconstructed plane in order to generate smoother transparency gradients.
-nodither Disable all dithering (default).
-mt    Use multi-threading for decoding, if possible.
-crop x_position y_position width height Crop the decoded picture to a rectangle with top-left corner at coordinates (x_position, y_position) and size width x height. This cropping area must be fully contained within the source rectangle.  The top-left corner will be snapped to even coordinates if needed.  This option is meant to reduce the memory needed for cropping large images.  Note: the cropping is applied before any scaling.
-flip  Flip decoded image vertically (can be useful for OpenGL textures for instance).
-resize, -scale width height Rescale the decoded picture to dimension width x height. This option is mostly intended to reducing the memory needed to decode large images, when only a small version is needed (thumbnail, preview, etc.). Note: scaling is applied after cropping.  If either (but not both) of the width or height parameters is 0, the value will be calculated preserving the aspect-ratio.
-quiet Do not print anything.
-v     Print extra information (decoding time in particular).
-noasm Disable all assembly optimizations.
Please report all bugs to the issue tracker: https://bugs.chromium.org/p/webp Patches welcome! See this page to get started: http://www.webmproject.org/code/contribute/submitting-patches/
dwebp picture.webp -o output.png dwebp picture.webp -ppm -o output.ppm dwebp -o output.ppm -- ---picture.webp cat picture.webp | dwebp -o - -- - > output.ppm
dwebp is a part of libwebp and was written by the WebP team. The latest source tree is available at https://chromium.googlesource.com/webm/libwebp
This manual page was written by Pascal Massimino <pascal.massimino@gmail.com>, for the Debian project (and may be used by others).
cwebp(1), gif2webp(1), webpmux(1) Please refer to http://developers.google.com/speed/webp/ for additional information.
Output file format details PAM: http://netpbm.sourceforge.net/doc/pam.html PGM: http://netpbm.sourceforge.net/doc/pgm.html PPM: http://netpbm.sourceforge.net/doc/ppm.html PNG: http://www.libpng.org/pub/png/png-sitemap.html#info
JOBS(1P)                    POSIX Programmer's Manual                   JOBS(1P)
jobs — display status of jobs in the current session
jobs [-l|-p] [job_id...]
The jobs utility shall display the status of jobs that were started in the current shell environment; see Section 2.12, Shell Execution Environment.
When jobs reports the termination status of a job, the shell shall remove its process ID from the list of those ``known in the current shell execution environment''; see Section 2.9.3.1, Examples.
The jobs utility shall conform to the Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines.
-l        (The letter ell.) Provide more information about each job listed. This information shall include the job number, current job, process group ID, state, and the command that formed the job.
-p        Display only the process IDs for the process group leaders of the selected jobs.
By default, the jobs utility shall display the status of all stopped jobs, running background jobs and all jobs whose status has changed and have not been reported by the shell.
job_id    Specifies the jobs for which the status is to be displayed. If no job_id is given, the status information for all jobs shall be displayed. The format of job_id is described in the Base Definitions volume of POSIX.1‐2017, Section 3.204, Job Control Job ID.
The following environment variables shall affect the execution of jobs:
If the -p option is specified, the output shall consist of one line for each process ID:
"%d\n", <process ID>
Otherwise, if the -l option is not specified, the output shall be a series of lines of the form:
"[%d] %c %s %s\n", <job-number>, <current>, <state>, <command>
<current> The character '+' identifies the job that would be used as a default for the fg or bg utilities; this job can also be specified using the job_id %+ or "%%".  The character '-' identifies the job that would become the default if the current default job were to exit; this job can also be specified using the job_id %-. For other jobs, this field is a <space>.  At most one job can be identified with '+' and at most one job can be identified with '-'.  If there is any suspended job, then the current job shall be a suspended job. If there are at least two suspended jobs, then the previous job also shall be a suspended job.
<state>   One of the following strings (in the POSIX locale):
Running   Indicates that the job has not been suspended by a signal and has not exited.
Done      Indicates that the job completed and returned exit status zero.
Done(code) Indicates that the job completed normally and that it exited with the specified non-zero exit status, code, expressed as a decimal number.
Stopped   Indicates that the job was suspended by the SIGTSTP signal.
Stopped (SIGTSTP) Indicates that the job was suspended by the SIGTSTP signal.
Stopped (SIGSTOP) Indicates that the job was suspended by the SIGSTOP signal.
Stopped (SIGTTIN) Indicates that the job was suspended by the SIGTTIN signal.
Stopped (SIGTTOU) Indicates that the job was suspended by the SIGTTOU signal.
The implementation may substitute the string Suspended in place of Stopped.  If the job was terminated by a signal, the format of <state> is unspecified, but it shall be visibly distinct from all of the other <state> formats shown here and shall indicate the name or description of the signal causing the termination.
<command> The associated command that was given to the shell.
If the -l option is specified, a field containing the process group ID shall be inserted before the <state> field. Also, more processes in a process group may be output on separate lines, using only the process ID and <command> fields.
The -p option is the only portable way to find out the process group of a job because different implementations have different strategies for defining the process group of the job. Usage such as $(jobs -p) provides a way of referring to the process group of the job in an implementation- independent way.
The jobs utility does not work as expected when it is operating in its own utility execution environment because that environment has no applicable jobs to manipulate. See the APPLICATION USAGE section for bg. For this reason, jobs is generally implemented as a shell regular built- in.
Both "%%" and "%+" are used to refer to the current job. Both forms are of equal validity—the "%%" mirroring "$$" and "%+" mirroring the output of jobs.  Both forms reflect historical practice of the KornShell and the C shell with job control.
The job control features provided by bg, fg, and jobs are based on the KornShell. The standard developers examined the characteristics of the C shell versions of these utilities and found that differences exist. Despite widespread use of the C shell, the KornShell versions were selected for this volume of POSIX.1‐2017 to maintain a degree of uniformity with the rest of the KornShell features selected (such as the very popular command line editing features).
The jobs utility is not dependent on the job control option, as are the seemingly related bg and fg utilities because jobs is useful for examining background jobs, regardless of the condition of job control. When the user has invoked a set +m command and job control has been turned off, jobs can still be used to examine the background jobs associated with that current session. Similarly, kill can then be used to kill background jobs with kill %<background job number>.
The output for terminated jobs is left unspecified to accommodate various historical systems. The following formats have been witnessed:
1. Killed(signal name)
2. signal name
3. signal name(coredump)
4. signal description- core dumped
Most users should be able to understand these formats, although it means that applications have trouble parsing them.
The calculation of job IDs was not described since this would suggest an implementation, which may impose unnecessary restrictions.
In an early proposal, a -n option was included to ``Display the status of jobs that have changed, exited, or stopped since the last status report''. It was removed because the shell always writes any changed status of jobs before each prompt.
Section 2.12, Shell Execution Environment, bg, fg, kill, wait
The Base Definitions volume of POSIX.1‐2017, Section 3.204, Job Control Job ID, Chapter 8, Environment Variables, Section 12.2, Utility Syntax Guidelines
FUSERMOUNT(1)            Filesystem in Userspace (FUSE)            FUSERMOUNT(1)
fusermount - mount and unmount FUSE filesystems
fusermount [OPTIONS] MOUNTPOINT
Filesystem in Userspace (FUSE) is a simple interface for userspace programs to export a virtual filesystem to the Linux kernel. It also aims to provide a secure method for non privileged users to create and mount their own filesystem implementations.
fusermount is a program to mount and unmount FUSE filesystems.
-h  print help.
-V  print version.
-o OPTION[,OPTION...] mount options.
-u  unmount.
-q  quiet.
-z  lazy unmount.
mount(8), mount.fuse(8), ulockmgr_server(1).
More information about fusermount and the FUSE project can be found at <http://fuse.sourceforge.net/>.
FUSE was written by Miklos Szeredi <miklos@szeredi.hu>.
This manual page was written by Daniel Baumann <daniel.baumann@progress-technologies.net>.
ZBARIMG(1)                     ZBar Barcode Reader                    ZBARIMG(1)
zbarimg - scan and decode bar codes from image file(s)
zbarimg [-qv] [--quiet] [--verbose[=n]] {-dD | --display | --nodisplay | --xml | --noxml | -S[symbology.]config[=value] | --set [symbology.]config[=value] | image...}
zbarimg {-h | --help | --version}
For each specified image file zbarimg scans the image for bar codes and prints any decoded data to stdout. Images may optionally be displayed to the screen.
The underlying library currently supports EAN-13 (including UPC and ISBN subsets), EAN-8, DataBar, DataBar Expanded, Code 128, Code 93, Code 39, Codabar, Interleaved 2 of 5 and QR Code symbologies. The specific type of each detected symbol is printed with the decoded data.
Note that "image" in this context refers to any format supported by ImageMagick, including many vector formats such as PDF and PostScript. Keep in mind that vector formats are rasterized before scanning; manually rasterize vector images before scanning to avoid unintentionally corrupting embedded barcode bitmaps.
This program follows the usual GNU command line syntax. Single letter options may be bundled, long options start with two dashes (`-').
-h, --help Print a short help message describing command line options to standard output and exit
--version Print program version information to standard output and exit
-v, --verbose[=n] Increase debug output level. Multiple -v options create more spew. Alternatively specify n to set the debug level directly
-S[symbology.]config[=value], --set [symbology.]config[=value] Set decoder configuration option config for symbology to value. value defaults to 1 if omitted.  symbology is one of ean13, ean8, upca, upce, isbn13, isbn10, i25, codabar, code39, code93, code128, qrcode or the special value *. If symbology is omitted or *, the config will be set for all applicable symbologies. These are the currently recognized configs. Prefix a config with "no-" to negate it. Not all configs are appropriate for every symbology.
enable Control decoding/reporting of a symbology. For symbologies which are just subsets of ean13 (upca, upce, isbn13, isbn10), this config controls whether the subsets are detected and reported as such. These special cases are disabled by default, all other symbologies default to enabled
disable Antonym for enable
emit-check Control whether check digits are included in the decoded output. Enabled by default. This config does not apply for code128, which never returns the check digit. It also not apply for cases where the check digit is disabled (see add-check). Check digits are currently not implemented for i25 or code39
add-check Enable decode and verification of a check digit for symbologies where it is optional: this will include code39 and i25, neither of which implements the check digit yet
ascii Enable escape sequences that encode the full ASCII character set. This would apply to code39, except that it's not implemented either...
position Enable collection of symbol position information. Enabled by default. Currently, the position information is unusable, so you can save a few cycles by disabling this.
test-inverted Specially for QR code images, sometimes the image is inverted, e. g. lines are written in white instead of black. This option makes ZBar to invert the image and parse again, in case it fails using the normal order. Enabling it affects all decoders.
min-length=n, max-length=n Bound the number of decoded characters in a valid symbol. If a decode result is outside the configured min/max range (inclusive), it will not be reported. Set to 0 to disable the corresponding check. This setting applies to variable-length symbologies: i25, codabar, code39, code128 and pdf417. min-length defaults to 6 for i25 and 1 for code39 (per Code 39 autodiscrimination recommendation); all others default to 0
x-density=n, y-density=n Adjust the density of the scanner passes. Lower values scan more of the image at the cost of decreased performance. Setting to 0 disables scanning along that axis. Defaults are both 1.
-q, --quiet Quiet operation; only output decoded symbol data. specifically this disables the statistics line printed (to stderr) before exiting, as well as the warning message printed (also to stderr) when no barcodes are found in an image
-d, --display, -D, --nodisplay Enable/disable display of subsequent image files, until next --display or --nodisplay is encountered. This option may appear multiple times to enable display of specific images. Image display is disabled by default
--xml, --noxml Enable/disable result output using an XML format. This format wraps the raw data from the symbol with information about the scan (such as page indices) in an easy to parse format. The latest schema is available from http://zbar.sourceforge.net/2008/barcode.xsd.
--raw Enable raw symbol data output. This format prints symbol data separated by newlines without the additional symbology type information that is printed by default
Scan a PNG image of a UPC bar code symbol and pass resulting data to a script that searches for the code in a database and does something useful with it:
zbarimg product.png | upcrpc.py
The upcrpc.py example script included in the examples/ subdirectory of the distribution will make an XMLRPC call to a popular internet UPC database and print the product description if found.
Scan a JPEG image containing several barcodes and display the image in a window, also disabling recognition of Interleaved 2 of 5 codes to prevent confusion with other symbologies or background noise:
zbarimg --display -Si25.disable label.jpg
Look in a scanned document only for Code 39, using XML output format so the page numbers are available. To enable only Code 39, first all symbologies are disabled, then Code 39 is re-enabled:
zbarimg --xml -Sdisable -Scode39.enable scan.tiff
zbarimg returns an exit code to indicate the status of the program execution. Current exit codes are:
0 Barcodes successfully detected in all images. Warnings may have been generated, but no errors.
1 An error occurred while processing some image(s). This includes bad arguments, I/O errors and image handling errors from ImageMagick.
2 ImageMagick fatal error.
3 The user quit the program before all images were scanned. Only applies when running in interactive mode (with --display)
4 No barcode was detected in one or more of the images. No other errors occurred.
zbarcam(1)
http://zbar.sf.net/
See http://sf.net/tracker/?group_id=189236&atid=928515
Jeff Brown <spadix@users.sourceforge.net> Lead developer
Copyright Â© 2007-2010 Jeff Brown
ctags(1)                         Universal Ctags                        ctags(1)
ctags - Generate tag files for source code
ctags [<options>] [<source_file(s)>] etags [<options>] [<source_file(s)>]
The ctags and etags (see -e option) programs (hereinafter collectively referred to as ctags, except where distinguished) generate an index (or "tag") file for a variety of language objects found in source file(s). This tag file allows these items to be quickly and easily located by a text editor or other utilities (client tools). A tag signifies a language object for which an index entry is available (or, alternatively, the index entry created for that object).
Alternatively, ctags can generate a cross reference file which lists, in human readable form, information about the various language objects found in a set of source files.
Tag index files are supported by numerous editors, which allow the user to locate the object associated with a name appearing in a source file and jump to the file and line which defines the name. See the manual of your favorite editor about utilizing ctags command and the tag index files in the editor.
ctags is capable of generating different kinds of tags for each of many different languages. For a complete list of supported languages, the names by which they are recognized, and the kinds of tags which are generated for each, see the --list-languages and --list-kinds-full options.
This man page describes Universal Ctags, an implementation of ctags derived from Exuberant Ctags. The major incompatible changes between Universal Ctags and Exuberant Ctags are enumerated in ctags-incompatibilities(7).
One of the advantages of Exuberant Ctags is that it allows a user to define a new parser from the command line. Extending this capability is one of the major features of Universal Ctags. ctags-optlib(7) describes how the capability is extended.
Newly introduced experimental features are not explained here. If you are interested in such features and ctags internals, visit https://docs.ctags.io/.
Despite the wealth of available options, defaults are set so that ctags is most commonly executed without any options (e.g.  "ctags *", or "ctags -R"), which will create a tag file in the current directory for all recognized source files. The options described below are provided merely to allow custom tailoring to meet special needs.
Note that spaces separating the single-letter options from their parameters are optional.
Note also that the boolean parameters to the long form options (those beginning with -- and that take a [=(yes|no)] parameter) may be omitted, in which case =yes is implied. (e.g. --sort is equivalent to --sort=yes). Note further that =1, =on, and =true are considered synonyms for =yes, and that =0, =off, and =false are considered synonyms for =no.
Some options are either ignored or useful only when used while running in etags mode (see -e option). Such options will be noted.
<options> must precede the <source_file(s)> following the standard POSIX convention.
Options taking language names will accept those names in either upper or lower case. See the --list-languages option for a complete list of the built-in language names.
Letters and names Some options take one-letter flags as parameters (e.g. --kinds-<LANG> option).  Specifying just letters help a user create a complicated command line quickly.  However, a command line including sequences of one-letter flags becomes difficult to understand.
Universal Ctags accepts long-name flags in addition to such one-letter flags. The long-name and one-letter flags can be mixed in an option parameter by surrounding each long-name by braces. Thus, for an example, the following three notations for --kinds-C option have the same meaning:
--kinds-C=+pLl --kinds-C=+{prototype}{label}{local} --kinds-C=+{prototype}L{local}
Note that braces may be meta characters in your shell. Put single quotes in such case.
--list-... options shows one-letter flags and associated long-name flags.
List options Universal Ctags introduces many --list-... options that provide the internal data of Universal Ctags (See "Listing Options"). Both users and client tools may use the data. --with-list-header and --machinable options adjust the output of the most of --list-... options.
The default setting (--with-list-header=yes and --machinable=no) is for using interactively from a terminal. The header that explains the meaning of columns is simply added to the output, and each column is aligned in all lines. The header line starts with a hash ('#') character.
For scripting in a client tool, --with-list-header=no and --machinable=yes may be useful. The header is not added to the output, and each column is separated by tab characters.
Note the order of columns will change in the future release.  However, labels in the header will not change. So by scanning the header, a client tool can find the index for the target column.
ctags has more options than listed here.  Options starting with an underscore character, such as --_echo=<msg>, are not listed here. They are experimental or for debugging purpose.
Notation: <foo> is for a variable string foo, [ ... ] for optional, | for selection, and ( ... ) for grouping.  For example --foo[=(yes|no)]'' means ``--foo, -foo=yes, or -foo=no.
Input/Output File Options --exclude=<pattern> Add <pattern> to a list of excluded files and directories. This option may be specified as many times as desired. For each file name considered by ctags, each pattern specified using this option will be compared against both the complete path (e.g. some/path/base.ext) and the base name (e.g. base.ext) of the file, thus allowing patterns which match a given file name irrespective of its path, or match only a specific path.
If appropriate support is available from the runtime library of your C compiler, then pattern may contain the usual shell wildcards (not regular expressions) common on Unix (be sure to quote the option parameter to protect the wildcards from being expanded by the shell before being passed to ctags; also be aware that wildcards can match the slash character, '/').  You can determine if shell wildcards are available on your platform by examining the output of the --list-features option, which will include wildcards in the compiled feature list; otherwise, pattern is matched against file names using a simple textual comparison.
If <pattern> begins with the character '@', then the rest of the string is interpreted as a file name from which to read exclusion patterns, one per line. If pattern is empty, the list of excluded patterns is cleared.
Note that at program startup, the default exclude list contains names of common hidden and system files, patterns for binary files, and directories for which it is generally not desirable to descend while processing the --recurse option. To see the list of built-in exclude patterns, use --list-excludes.
See also the description for --exclude-exception= option.
--exclude-exception=<pattern> Add <pattern> to a list of included files and directories. The pattern affects the files and directories that are excluded by the pattern specified with --exclude= option.
For an example, you want ctags to ignore all files under foo directory except foo/main.c, use the following command line: --exclude=foo/* --exclude-exception=foo/main.c.
--filter[=(yes|no)] Makes ctags behave as a filter, reading source file names from standard input and printing their tags to standard output on a file-by-file basis. If --sort is enabled, tags are sorted only within the source file in which they are defined. File names are read from standard input in line-oriented input mode (see note for -L option) and only after file names listed on the command line or from any file supplied using the -L option. When this option is enabled, the options -f, -o, and --totals are ignored. This option is quite esoteric and is disabled by default.
--filter-terminator=<string> Specifies a <string> to print to standard output following the tags for each file name parsed when the --filter option is enabled. This may permit an application reading the output of ctags to determine when the output for each file is finished.
Note that if the file name read is a directory and --recurse is enabled, this string will be printed only once at the end of all tags found for by descending the directory. This string will always be separated from the last tag line for the file by its terminating newline.
This option is quite esoteric and is empty by default.
--links[=(yes|no)] Indicates whether symbolic links (if supported) should be followed.  When disabled, symbolic links are ignored. This option is on by default.
--maxdepth=<N> Limits the depth of directory recursion enabled with the --recurse (-R) option.
--recurse[=(yes|no)] Recurse into directories encountered in the list of supplied files.
If the list of supplied files is empty and no file list is specified with the -L option, then the current directory (i.e. '.') is assumed.  Symbolic links are followed by default (See --links option). If you don't like these behaviors, either explicitly specify the files or pipe the output of find(1) into "ctags -L -" instead. See, also, the --exclude and --maxdepth to limit recursion.
Note: This option is not supported on all platforms at present. It is available if the output of the --help option includes this option.
-R     Equivalent to --recurse.
-L <file> Read from <file> a list of file names for which tags should be generated.
If file is specified as '-', then file names are read from standard input. File names read using this option are processed following file names appearing on the command line. Options are also accepted in this input. If this option is specified more than once, only the last will apply.
Note: file is read in line-oriented mode, where a new line is the only delimiter and non-trailing white space is considered significant, in order that file names containing spaces may be supplied (however, trailing white space is stripped from lines); this can affect how options are parsed if included in the input.
--append[=(yes|no)] Indicates whether tags generated from the specified files should be appended to those already present in the tag file or should replace them.  This option is no by default.
-a     Equivalent to --append.
-f <tagfile> Use the name specified by <tagfile> for the tag file (default is "tags", or "TAGS" when running in etags mode). If <tagfile> is specified as '-', then the tags are written to standard output instead.
ctags will stubbornly refuse to take orders if tagfile exists and its first line contains something other than a valid tags line. This will save your neck if you mistakenly type "ctags -f *.c", which would otherwise overwrite your first C file with the tags generated by the rest! It will also refuse to accept a multi-character file name which begins with a '-' (dash) character, since this most likely means that you left out the tag file name and this option tried to grab the next option as the file name. If you really want to name your output tag file -ugly, specify it as "-f ./-ugly".
This option must appear before the first file name. If this option is specified more than once, only the last will apply.
-o <tagfile> Equivalent to "-f tagfile".
Output Format Options --format=(1|2) Change the format of the output tag file. Currently the only valid values for level are 1 or 2. Level 1 specifies the original tag file format and level 2 specifies a new extended format containing extension fields (but in a manner which retains backward-compatibility with original vi(1) implementations). The default level is 2.  [Ignored in etags mode]
--output-format=(u-ctags|e-ctags|etags|xref|json) Specify the output format. The default is u-ctags.  See tags(5) for u-ctags and e-ctags.  See -e for etags, and -x for xref.  json format is available only if the ctags executable is built with libjansson.  See ctags-client-tools(7) for more about json format.
-e     Same as --output-format=etags.  Enable etags mode, which will create a tag file for use with the Emacs editor. Alternatively, if ctags is invoked by a name containing the string "etags" (either by renaming, or creating a link to, the executable), etags mode will be enabled.
-x     Same as --output-format=xref.  Print a tabular, human-readable cross reference (xref) file to standard output instead of generating a tag file. The information contained in the output includes: the tag name; the kind of tag; the line number, file name, and source line (with extra white space condensed) of the file which defines the tag. No tag file is written and all options affecting tag file output will be ignored.
Example applications for this feature are generating a listing of all functions located in a source file (e.g. "ctags -x --kinds-c=f file"), or generating a list of all externally visible global variables located in a source file (e.g. "ctags -x --kinds-c=v --extras=-F file").
--sort=(yes|no|foldcase) Indicates whether the tag file should be sorted on the tag name (default is yes). Note that the original vi(1) required sorted tags.  The foldcase value specifies case insensitive (or case-folded) sorting.  Fast binary searches of tag files sorted with case-folding will require special support from tools using tag files, such as that found in the ctags readtags library, or Vim version 6.2 or higher (using "set ignorecase").  [Ignored in etags mode]
-u     Equivalent to --sort=no (i.e. "unsorted").
--etags-include=<file> Include a reference to <file> in the tag file. This option may be specified as many times as desired. This supports Emacs' capability to use a tag file which includes other tag files. [Available only in etags mode]
--input-encoding=<encoding> Specifies the <encoding> of the input files.  If this option is specified, Universal Ctags converts the input from this encoding to the encoding specified by --output-encoding=encoding.
--input-encoding-<LANG>=<encoding> Specifies a specific input <encoding> for <LANG>. It overrides the global default value given with --input-encoding.
--output-encoding=<encoding> Specifies the <encoding> of the tags file.  Universal Ctags converts the encoding of input files from the encoding specified by --input-encoding=<encoding> to this encoding.
In addition <encoding> is specified at the top the tags file as the value for the TAG_FILE_ENCODING pseudo-tag. The default value of <encoding> is UTF-8.
Language Selection and Mapping Options --language-force=(<language>|auto) By default, ctags automatically selects the language of a source file, ignoring those files whose language cannot be determined (see "Determining file language"). This option forces the specified language (case-insensitive; either built-in or user-defined) to be used for every supplied file instead of automatically selecting the language based upon its extension.
In addition, the special value auto indicates that the language should be automatically selected (which effectively disables this option).
--languages=[+|-](<list>|all) Specifies the languages for which tag generation is enabled, with <list> containing a comma-separated list of language names (case-insensitive; either built-in or user-defined).
If the first language of <list> is not preceded by either a '+' or '-', the current list (the current settings of enabled/disabled languages managed in ctags internally) will be cleared before adding or removing the languages in <list>. Until a '-' is encountered, each language in the <list> will be added to the current list.
As either the '+' or '-' is encountered in the <list>, the languages following it are added or removed from the current list, respectively.  Thus, it becomes simple to replace the current list with a new one, or to add or remove languages from the current list.
The actual list of files for which tags will be generated depends upon the language extension mapping in effect (see the --langmap option). Note that the most of languages, including user-defined languages, are enabled unless explicitly disabled using this option. Language names included in list may be any built-in language or one previously defined with --langdef.
The default is all, which is also accepted as a valid argument. See the --list-languages option for a list of the all (built-in and user-defined) language names.
Note --languages= option works cumulative way; the option can be specified with different arguments multiple times in a command line.
--alias-<LANG>=[+|-](<pattern>|default) Adds ('+') or removes ('-') an alias <pattern> to a language specified with <LANG>. ctags refers to the alias pattern in "‐ Determining file language" stage.
The parameter <pattern> is not a list. Use this option multiple times in a command line to add or remove multiple alias patterns.
To restore the default language aliases, specify default.
Using all for <LANG> has meaning in following two cases:
--alias-all= This clears aliases setting of all languages.
--alias-all=default This restores the default languages aliases for all languages.
--guess-language-eagerly Looks into the file contents for heuristically guessing the proper language parser.  See "Determining file language".
-G     Equivalent to --guess-language-eagerly.
--langmap=<map>[,<map>[...]] Controls how file names are mapped to languages (see the --list-maps option). Each comma-separated <map> consists of the language name (either a built-in or user-defined language), a colon, and a list of file extensions and/or file name patterns. A file extension is specified by preceding the extension with a period (e.g. .c). A file name pattern is specified by enclosing the pattern in parentheses (e.g.  ([Mm]akefile)).
If appropriate support is available from the runtime library of your C compiler, then the file name pattern may contain the usual shell wildcards common on Unix (be sure to quote the option parameter to protect the wildcards from being expanded by the shell before being passed to ctags). You can determine if shell wildcards are available on your platform by examining the output of the --list-features option, which will include wildcards in the compiled feature list; otherwise, the file name patterns are matched against file names using a simple textual comparison.
When mapping a file extension with --langmap option, it will first be unmapped from any other languages. (--map-<LANG> option provides more fine-grained control.)
If the first character in a <map> is a plus sign ('+'), then the extensions and file name patterns in that map will be appended to the current map for that language; otherwise, the map will replace the current map.  For example, to specify that only files with extensions of .c and .x are to be treated as C language files, use --langmap=c:.c.x; to also add files with extensions of .j as Java language files, specify --langmap=c:.c.x,java:+.j. To map makefiles (e.g. files named either Makefile, makefile, or having the extension .mak) to a language called make, specify --langmap=make:([Mm]akefile).mak. To map files having no extension, specify a period not followed by a non-period character (e.g. '.', ..x, .x.).
To clear the mapping for a particular language (thus inhibiting automatic generation of tags for that language), specify an empty extension list (e.g. --langmap=fortran:).  To restore the default language mappings for a particular language, supply the keyword default for the mapping. To specify restore the default language mappings for all languages, specify --langmap=default.
Note that file name patterns are tested before file extensions when inferring the language of a file. This order of Universal Ctags is different from Exuberant Ctags. See ctags-incompatibilities(7) for the background of this incompatible change.
--map-<LANG>=[+|-]<extension>|<pattern> This option provides the way to control mapping(s) of file names to languages in a more fine-grained way than --langmap option.
In ctags, more than one language can map to a file name <pattern> or file <extension> (N:1 map). Alternatively, --langmap option handle only 1:1 map, only one language mapping to one file name <pattern> or file <extension>.  A typical N:1 map is seen in C++ and ObjectiveC language; both languages have a map to .h as a file extension.
A file extension is specified by preceding the extension with a period (e.g. .c).  A file name pattern is specified by enclosing the pattern in parentheses (e.g.  ([Mm]akefile)). A prefixed plus ('+') sign is for adding, and minus ('-') is for removing. No prefix means replacing the map of <LANG>.
Unlike --langmap, <extension> (or <pattern>) is not a list. --map-<LANG> takes one extension (or pattern). However, the option can be specified with different arguments multiple times in a command line.
Tags File Contents Options See "TAG ENTRIES" about fields, kinds, roles, and extras.
--excmd=(number|pattern|mix|combine) Determines the type of EX command used to locate tags in the source file. [Ignored in etags mode]
The valid values for type (either the entire word or the first letter is accepted) are:
number Use only line numbers in the tag file for locating tags. This has four advantages:
1. Significantly reduces the size of the resulting tag file.
2. Eliminates failures to find tags because the line defining the tag has changed, causing the pattern match to fail (note that some editors, such as vim, are able to recover in many such instances).
3. Eliminates finding identical matching, but incorrect, source lines (see "BUGS").
4. Retains separate entries in the tag file for lines which are identical in content. In pattern mode, duplicate entries are dropped because the search patterns they generate are identical, making the duplicate entries useless.
However, this option has one significant drawback: changes to the source files can cause the line numbers recorded in the tag file to no longer correspond to the lines in the source file, causing jumps to some tags to miss the target definition by one or more lines. Basically, this option is best used when the source code to which it is applied is not subject to change. Selecting this option type causes the following options to be ignored: -B, -F.
number type is ignored in Xref and JSON output formats. Use --_xformat="...%n" for Xref output format, or --fields=+n-P for JSON output format.