neulab/tldr huggingface dataset:
Vedic Calendar: It may be noted that the Indo-Aryans had also six seasons (Sanskrit rtu, Avestan ratu) evidently modified to meet the climate in the Indus Valley. They were: Vasanta (Spring), Grishma (Summer), Varsha (The Rains), Sharad (Autumn), Hemanta (Winter), and Shishira (the Cool season). Persians and Other Iranian Calendar: The Achaemenians, Sogdians, Chorasmians, and Armenians, all Zoroastrians by faith, had their own names for their months. The names of the Achaemenian months, as given in the bas-reliefs of Darius the Great are rendered to convey (1) Irrigation-canal-cleaning month, (2) Vigorous spring, (3) Garlic-collecting month, (4) Hot-step, (7) God- veneration, (8) Wolf-birth, (9) Fire-veneration, (10) Anaamaka -- Nameless month, and (12) Digging-up. Three names have not been given in Old Persian but we have their Elamite pronunciations and all, except two, are nonreligious terms. The Achaemenians had numbers instead of names for the days of the month. (see Old Persian, Ronald G. Kent, 2nd ed., New Haven, 1953).  That confirms that the months as well as the days named after pre- Zarathushtrian deities and post-Zarathushtrian personifications of Gathic abstracts is a later addition.  There are indications that it was done during the reign of Artaxerxes II (405-359 BCE), and that naming the months and days in honor of deities were adopted from the Egyptians.  The names of the Gahanbars, and those of the Vedic, Achaemenian, Sogdian, Chorasmian, and Armenian months show that the names of the pre-Zarathushtrian and Gathic months must have been based on the seasons and social activities, and not on deities.  These old names have, however, been so well obliterated by the authoritarian priests that we do not have any inkling of what they were.
Later Avestan Calendar: The names of the twelve months in modern Persian and their Avestan forms with their corresponding Zodiac names are
1. Farvardin   Fravashi/Fravarti   Aries       21 March
2. Ardibehesht Asha Vahishta       Taurus      21 April
3. Khordaad    Haurvataat          Gemini      22 May
4. Tir         Tishtrya            Cancer      22 June
5. Amordaad    Ameretaa            Leo         23 July
6. Shahrivar   Khshathra Vairya    Virgo       23 August
7. Mehr        Mithra              Libra       23 Sept
8. Aabaan      Ap                  Scorpio     23 Oct
9. Aazar       Aathra              Sagittarius 22 Nov
10. Dey        Dathva              Capricorn   22 Dec
11. Bahman     Vohu Manah          Aquarius    21 Jan
12. Esfand     Spentaa Aaramaiti   Pisces      20 Feb
Note: Of these only those in bold letters are the Gathic "Primal Principles of Life," Aazar/Aathra has been mentioned in the Gathas as the symbol of the Progressive Mentality (Spenta Mainyu), and "ap" (water) is also mentioned in the Gathic texts, but the rest are later Avestan names.
The early Avestan people had no notion of the week, a period of seven days now in universal use as a division of time. Week is a man-made unit. Its length has, among various people, been from five to ten days. But since the lunar month, one of the earliest ways of reckoning time, is alternately of 29 and 30 days with two phases of waxing and waning moon, it was quite easy to further divide it and have four quarters of seven and eight days accommodated in it. The seven planets visible to the naked eye may have also played a part in its formation. That is why weekdays are named after celestial bodies. However, the present universal week is most probably of Chaldean or Hebrew origin, and has been generalized by Jewish, Christian and Islamic persuasion.  The later Avestan solar calendar, based on thirty days in a month, has four quarters -- the first two of seven days and the last two of eight days. But Avesta and Pahlavi do not have any names for each of these quarters or for the weekdays. Modern Persian follows the Hebrew pattern of having Saturday as Shanbeh, Persianized form of "Shabbath", and then counting from one to five as Yek-shanbeh, Do-shanbeh, Se-shanbeh, Chahaar-shanbeh, Panj-shanbeh, and under the Islamic influence, Aadineh or Jom'eh for Friday, the day of mass prayers.
NO HISTORY.
No other versions rumor to exist.
Written by Ashkan Ghassemi. <ghassemi@ftml.net>
Report jcal bugs to <ghassemi@ftml.net> libjalali home page: <http://savannah.nongnu.org/projects/jcal/>
jdate (1), jctime (3), jstrftime (3), jstrptime (3)
Copyright (C) 2011 Ashkan Ghassemi.  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.  This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
XBACKLIGHT(1x)                                                    XBACKLIGHT(1x)
xbacklight - adjust backlight brightness using RandR extension
xbacklight [-help]  [-display display] [-get] [-set percent] [-inc percent] [-dec percent]
Xbacklight is used to adjust the backlight brightness where supported. It finds all outputs on the X server supporting backlight brightness control and changes them all in the same way.
-get   Print out the current backlight brightness of each output with such a control. The brightness is represented as a percentage of the maximum brightness supported.
-set percent Sets each backlight brightness to the specified level.
-inc percent Increases brightness by the specified amount.
-dec percent Decreases brightness by the specified amount.
-help  Print out a summary of the usage and exit.
-time milliseconds Length of time to spend fading the backlight between old and new value.  Default is 200.
-steps number Number of steps to take while faiding. Default is 20.
Xrandr(3)
Keith Packard, Open Source Technology Center, Intel Corporation.
Q(1)                         General Commands Manual                        Q(1)
Q - The equational programming language
q  [ options ] [ file | - ] [ argument ... ] qc [ options ] [ file | - ] ...
These programs are used to compile and execute scripts written in the Q programming language. Q is an interpreted, dynamically typed functional programming language based on term rewriting which allows you to define functions using symbolic equations.
For instance, here is a little Q script featuring a recursive definition of the well-known factorial function:
fact 0 = 1; fact N = N*fact(N-1) if N>0;
This definition tells the interpreter that the term (function application) `fact 0' should evaluate to the integer constant 1, while any other term `fact N' with N>0 evaluates to the value of the expression N*fact(N-1).
A closer description of the language is well outside the scope of this manual page, but you can find some further notes about Q below, and you should also take a look at the Q info file (available online using info qdoc or with the help command of the interpreter) for details and many more examples.
The primary interface to the Q language is the interpreter program q. The qc program is a compiler for Q scripts which is usually invoked automatically by the interpreter to translate the source script to a bytecode format which is suitable for efficient execution. To run a script stored in a file foo.q you usually invoke the interpreter just as:
q foo.q
(The script name can also be followed by other parameters which are passed to the script and can be accessed through the built-in ARGS variable of the interpreter.)
You can also execute compiler and interpreter separately, like this:
qc foo.q q q.out
The compiler will then compile the source script foo.q to the bytecode file q.out which can be loaded by the interpreter. Note that if you run a source script through the interpreter, then the compilation step is handled automatically and the bytecode file is removed automatically as soon as it has been loaded by the interpreter.
Both compiler and interpreter can also be invoked without arguments, or with an empty script name, in which case only the built-in functions and definitions in the script prelude.q (which by default includes the standard Q library) are loaded. The automatic inclusion of the prelude script can also be suppressed with the --no-prelude compiler option.
The script name can also be a single hyphen `-' to indicate that the script should be read from standard input.
Script and bytecode files are searched for on the ``Q library path'' which usually defaults to something like
.:/usr/share/q/lib:/usr/lib/q
You can override this default by setting the QPATH environment variable, by using the -p command line option, and with the path command of the interpreter.
Compiler and interpreter support both short and long (GNU style) options. A brief descriptive message showing the version number can be obtained with the --version or -V option. You can also invoke compiler and interpreter with the --help or -h option to print a summary of the command line syntax and the available options. Other important options are listed below (see the Q info file for more).
--     Stops option processing (remaining parameters will be treated as ordinary command arguments even if they start with `-').
-c command Execute the given interpreter command (batch mode).
-d     Invoke the symbolic debugger built into the interpreter.
-i     Run interactively (print sign-on and prompt) even when input or output is redirected. Also cause any -c and -s options to be ignored.
-o output-file Specify the name of the bytecode file created by the compiler (default is q.out).
-q     Quiet startup (suppress the sign-on message).
-s command-file Source file with interpreter commands (batch mode).
-w     Prints warnings about possibly undefined function symbols. This gives you a moderate level of confidence for small or medium-sized programs.  -w2 or --pedantic prints even more diagnostics, and might be useful for larger projects.  -w3 or --paranoid prints an excessive amount of diagnostics even for perfectly legal scripts. This is not intended to be used regularly, but may occasionally be useful to check your script for missing declarations or mistyped identifiers.
Unless one of the -c and -s options is specified, or if invoked with the -i option, the interpreter starts up in interactive mode, in which the user is repeatedly prompted to enter an expression to be evaluated, and the interpreter answers with the corresponding ``normal form.''  If the interpreter runs in interactive mode and is connected to a tty, the interpreter supports command line editing and history using the GNU readline library. The quit function causes the interpreter to be exited. End-of-file and Ctl-C are also handled (more or less) gracefully.
On the interactive command line, the value of the last expression can be referred to using the ``anonymous'' variable, denoted by an underscore (`_'). Moreover, the interpreter understands a number of special commands which allow you to define variables, inspect and adjust various system parameters, edit and run scripts and command source files, read online info, load and save variables values, etc. Please refer to the Q info page for a description of these. You can also put such commands into the .qinitrc and .qexitrc files in your home directory which are sourced when the interpreter starts up and is exited in interactive mode, respectively. This provides a convenient means, e.g., to customize parameters of the interpreter according to your taste, and to automatically reload and save variable values.
On UNIX systems, you can also run Q scripts directly from the shell using the ``shebang'' #! to specify the q program as a command language processor. For instance, use the following as the first line of your script to invoke q with the option -cfoo which causes the function foo to be evaluated at startup:
#!/usr/local/bin/q -cfoo
Such lines will be treated as comments by the compiler and interpreter. It is also possible to specify compiler and interpreter options at the beginning of the main script using the notation `#! option'. For instance:
#!/usr/local/bin/q #! -w #! -cfoo
Instead of directly running the script file, you can also use the qcwrap program to translate the script to a C file. This is useful if your shell does not support the #! notation, or if the script is to be distributed in a self-contained, binary form. The qcwrap program is available as an optional addon, see the Q info file for details.
The --debug or -d option causes activation of a symbolic debugger built into the interpreter.  The debugger can also be invoked interactively and you can set breakpoints using the debug and break commands on the command line. The debugger allows you to trace the reductions performed by the Q interpreter in the course of an expression evaluation. You can also step over reductions, abort the evaluation, and print a list of activated rules. Use the command ? or help in the debugger to print a list of debugger commands.
QPATH  A colon-separated list of directories to be searched for source and code files.
QWARN  The default warning level (overridden with the -wn option; zero if not set).
EDITOR Editor used by the built-in edit command of the interpreter (default: vi).
INFO_PROGRAM Program used to read online documentation with the built-in help command of the interpreter (default: info).
GNUCLIENT_PROGRAM Program used to communicate with emacs(1) when running as a client of gnuserv(1), which is triggered with the interpreter's --gnuclient option.
q.out  Default code file name.
.q_vars Default file name for loading and saving variable definitions (load and save commands).
~/.q_history File used to store the command history when the interpreter is run interactively.
~/.qinitrc Initialization file containing interpreter commands to be executed at startup when running interactively.
~/.qexitrc Termination file containing interpreter commands to be executed when the interpreter exits.
Q may have started out as an academic research project, but it should not be mistaken for a toy language. Q has a modern syntax featuring both user-definable infix operators and curried function applications, and provides many goodies of modern-style functional languages, such as higher-order functions (including lambdas), support for both eager and lazy evaluation, and OOP-style polymorphic algebraic types. The Q interpreter goes to great lengths to implement term rewriting in an efficient manner, so that Q programs are executed reasonably fast, more or less comparable to other interpreted languages. Moreover, Q comes with an extensive software library, which makes it a practical programming tool and in many areas surpasses what is available for its bigger cousins like ML and Haskell.
The Q interpreter is extensible using ``external'' modules written in C or C++ (which are loaded at runtime, if possible), and can itself be used as an extension language for other C/C++ applications. Q has a fairly complete POSIX system interface and a comprehensive collection of addon modules which interface to various popular open source software packages including, e.g., GNU Octave, various GUI, graphics, multimedia, database and web-related libraries, and a module for the Apache web server. There is a language mode for emacs, which provides a convenient environment for editing and running Q scripts, and syntax files for the vim and kate text editors are also available. All this is described in much more detail in the Q info file and in the other documentation available on the Q website.
The only major issue I am aware of is memory requirements. The actual data of an expression node is only 12 bytes, but memory management, type tags and other book-keeping information sum up to another 12 bytes. There is no easy way around this in the current implementation, so don't expect this to change anytime soon. Fortunately, main memory gets cheaper and bigger all the time, so this should rarely be a problem in practice.
The Q interpreter uses a special pattern-matching technique to determine matching equations quickly and during a single left-to-right scan of each potential redex. This usually works very well, but there are some pathological configurations of left-hand sides of equations which cause an exponential blow-up of the tables of the pattern-matching automaton; fortunately, they are rare. You can tell that you have run into such a situation when the interpreter needs a long time to start up or appears to hang during bytecode compilation. The only way around this currently is to rewrite your script so that the amount of overlap between equations is reduced.
Another limitation of the current implementation is that special argument patterns and paths to left-hand side variables are currently encoded as bit vectors to save memory space. Thus functions cannot be declared with more than 32 special parameters, and the left-hand side of a rule or local variable definition may not be more than 32 levels deep. There are also some hardcoded limits in the compiler for the sizes of the expression and code table for a single rule. The default table sizes are fairly large and, so far, this has never been a problem in practice. If you do run into an ``expression too complex'' or ``code table overflow'' error then it is probably time to restructure your program anyway. ;-)
The Q Programming Language, by Albert Graef, Johannes Gutenberg- University Mainz, Germany. (Also available online, see info qdoc.)
http://q-lang.sourceforge.net
tlp(8)                          Power Management                          tlp(8)
tlp - apply laptop power saving settings
tlp command [parameters] [-- CONFIG_PARAM=value ... ]
tlp applies power saving settings manually and controls battery care features.
start  Initialize tlp and apply power saving settings according to the actual power source. Also use to apply a changed configuration or to leave manual mode.
bat    Apply the battery settings profile and enter manual mode. Manual mode means that changes to the power source will be ignored until the next reboot or tlp start is issued to resume automatic mode.
true   Same as bat.
ac     Apply the AC settings profile and enter manual mode. Manual mode means that changes to the power source will be ignored until the next reboot or tlp start is issued to resume automatic mode.
false  Same as ac.
usb    Enable autosuspend for all USB devices except those excluded by default or in the configuration.
bayoff Turn off optical drive in UltraBay/MediaBay.  The drive may be re-enabled by pulling the eject lever or pushing the media eject button on newer models.
Note: charge threshold and recalibration commands below work for specific laptop vendors and models only. Check the actual support status and the value ranges with tlp-stat -b. For details on charge thresholds also refer to the link at the bottom.
setcharge [START_CHARGE_THRESH STOP_CHARGE_THRESH] [BAT0|BAT1|BATx|CMB0] Changes the charge thresholds for the battery temporarily.  If your hardware supports only a stop threshold, set the start value to 0.  Configured charge thresholds will be restored at the next boot or by using tlp setcharge again but without the threshold arguments.
fullcharge [BAT0|BAT1|BATx|CMB0] Charge the battery to full capacity.  This is done by applying vendor presets to the charge thresholds temporarily.  Configured charge thresholds will be restored at the next boot or by using tlp setcharge without the threshold arguments.
chargeonce [BAT0|BAT1] (ThinkPads only) Charge the battery to the stop charge threshold once.  This is done by temporarily lifting the start charge threshold.  The configured start charge threshold will be restored at the next boot or by using tlp setcharge without the threshold arguments.
discharge [BAT0|BAT1] (ThinkPads only) Force complete discharge of the battery.
recalibrate [BAT0|BAT1] (ThinkPads only) Battery recalibration: completely discharge the battery and recharge to 100%.  The latter is done by temporarily applying vendor presets to the thresholds.  Configured thresholds will be restored at the next boot or by using tlp setcharge.
diskid Show disk ids for configuration.
For laptops with more than one battery the selection works as follows:
BAT0 - Main or internal battery
BAT1 - Secondary or replaceable battery
Change thresholds of the main battery to 70 / 90% temporarily:
tlp setcharge 70 90 BAT0
Charge the auxiliary battery to full capacity:
tlp fullcharge BAT1
Recalibrate the main battery:
tlp recalibrate BAT0
/etc/default/tlp Obsolete system-wide configuration file. DO NOT USE this file, it is evaluated only when /etc/tlp.conf is non-existent.
tlp-stat(8), bluetooth(1), wifi(1), wwan(1).
Project homepage: ⟨https://linrunner.de/tlp⟩
Charge thresholds: ⟨https://linrunner.de/tlp/settings/battery.html⟩
ROLL(1)                User Contributed Perl Documentation               ROLL(1)
roll - Command line interface for dice rolls
version 0.045
# Evaluate these command line params roll 3d6 2d8
echo "5d6" > f echo "2d4+1" >> f
# Read the contents of 'f' from STDIN roll < f
# Evaluate 1d100 and open file 'f' roll d% f
This is a command line interface to the Games::Dice library. It takes die rolling specifications in the form of adb[+-*/b]c.
(This specification may change a bit over time, but not radically.)
•   a is optional and defaults to 1; this is number of dice to roll.
•   b is the number of sides on each die. '%' is shorthand for 100.
The optional end modifies the sum of the rolls. 'b' means take the "best" c rolls and sum them. Also '/' truncates the result to an integer after division.
Dice specifications can be piped in, given on STDIN or as positional parameters from the command line.
If a positional parameter matches a file name, it will be opened and each line of the file evaluated.
•   Philip Newton <pne@cpan.org>
•   Ricardo Signes <rjbs@cpan.org>
This software is Copyright (c) 1999 by Philip Newton.
This is free software, licensed under:
The MIT (X11) License
man(8)                           influx man page                          man(8)
influx - InfluxDB Shell
influx [options]
influx is an interactive shell to InfluxDB.
-version Display the version and exit.
-host <host name> Host to connect to.
-port <port> Port to connect to.
-database <database name> Database to connect to the server.
-password <password> Password to connect to the server.  Leaving blank will prompt for password.
-username <username> Username to connect to the server.
-dump  Dump the contents of the given database to stdout.
-execute <command> Execute command and quit.
-format <json|csv|column> Format specifies the format of the server responses:  json, csv, or column.
-pretty Turns on pretty print for the json format.
influxd(1)
Alexandre Viau (alexandre@alexandreviau.net)
apache2ctl(8)                System Manager's Manual               apache2ctl(8)
apache2ctl - Apache HTTP server control interface
When acting in SysV init mode, apache2ctl takes simple, one-word commands, defined below.
apachectl command
apache2ctl command
When acting in pass-through mode, apache2ctl can take all the arguments available for the httpd binary.
apachectl [httpd-argument]
apache2ctl [httpd-argument]
apache2ctl is a front end to the Apache HyperText Transfer Protocol (HTTP) server.  It is designed to help the administrator control the functioning of the Apache apache2 daemon.
NOTE: The default Debian configuration requires the environment variables APACHE_RUN_USER, APACHE_RUN_GROUP, and APACHE_PID_FILE to be set in /etc/apache2/envvars.
The apache2ctl script returns a 0 exit value on success, and >0 if an error occurs.  For more details, view the comments in the script.
The command can be any one or more of the following options:
start         Start the Apache daemon.  Gives an error if it is already running.
stop          Stops the Apache daemon.
restart       Restarts the Apache daemon by sending it a SIGHUP.  If the daemon is not running, it is started.  This command automatically checks the configuration files via configtest before initiating the restart to to catch  the  most obvious  errors.  However, it is still possible for the daemon to die because of problems with the configuration.
fullstatus    Displays a full status report from mod_status.  For this to work, you need to have mod_status enabled on your server and a text-based browser such as lynx available on your system.  The URL used to access the status report can be set by setting the APACHE_STATUSURL variable in /etc/apache2/envvars.
status        Displays a brief status report. Similar to the fullstatus option, except that the list of requests currently being served is omitted.
graceful      Gracefully restarts the Apache daemon by sending it a SIGUSR1.  If the daemon is not running, it is started. This differs from a normal restart in that currently open connections are not aborted.  A side effect is that old log files will not be closed immediately.  This means that if used in a log rotation script, a substantial delay may be necessary to ensure that the old log files are closed before processing them.  This command automatically checks the configuration files via apache2ctl configtest before initiating the restart to to catch the most obvious errors. However, it is still possible for the daemon to die because of problems with the configuration.
graceful-stop Gracefully stops the Apache httpd daemon.  This differs from a normal stop in that currently open connections are not aborted.  A side effect is that old log files will not be closed immediately.
configtest    Run a configuration file syntax test. It parses the configuration files and either reports Syntax Ok or information about the particular syntax error. This test does not catch all errors.
help          Displays a short help message.
The following option was available in earlier versions but has been removed.
startssl      To start httpd with SSL support, you should edit your configuration file to include the relevant directives and then use the normal apache2ctl start.
The behaviour of apache2ctl can be influenced with these environment variables: APACHE_HTTPD, APACHE_LYNX, APACHE_STATUSURL, APACHE_ULIMIT_MAX_FILES, APACHE_RUN_DIR, APACHE_LOCK_DIR, APACHE_RUN_USER, APACHE_ARGUMENTS, APACHE_ENVVARS.  See the comments in the script for details.  These variables (except APACHE_ENVVARS) can be set in /etc/apache2/envvars.
apache2(8), /usr/share/doc/apache2/README.Debian.gz
COLORDIFF(1)                      User Commands                     COLORDIFF(1)
colordiff - a tool to colorize diff output
colordiff [diff options] [colordiff options] {file1} {file2}
colordiff is a wrapper for diff and produces the same output as diff but with coloured syntax highlighting at the command line to improve readability. The output is similar to how a diff-generated patch might appear in Vim or Emacs with the appropriate syntax highlighting options enabled. The colour schemes can be read from a central configuration file or from a local user ~/.colordiffrc file.
colordiff makes use of ANSI colours and as such will only work when ANSI colours can be used - typical examples are xterms and Eterms, as well as console sessions.
colordiff has been tested on various flavours of Linux and under OpenBSD, but should be broadly portable to other systems.
Use colordiff wherever you would normally use diff, or instead pipe output to colordiff:
$ colordiff file1 file2 $ diff -u file1 file2 | colordiff
You can pipe the output to 'less', using the '-R' option (some systems or terminal types may get better results using '-r' instead), which keeps the colour escape sequences, otherwise displayed incorrectly or discarded by 'less':
$ diff -u file1 file2 | colordiff | less -R
If you want to force disable colour escape sequences (for example pipe the output to patch), you can use option '--color=no' to do so:
$ diff -u file1 file2 | colordiff --color=no | patch -p0 -d another-working-dir
If you have wdiff installed, colordiff will correctly colourise the added and removed text, provided that the '-n' option is given to wdiff:
$ wdiff -n file1 file2 | colordiff
You may find it useful to make diff automatically call colordiff. Add the following line to ~/.bashrc (or equivalent):
alias diff=colordiff
Any options passed to colordiff are passed through to diff except for the colordiff-specific option 'difftype', e.g.
colordiff --difftype=debdiff file1 file2
Valid values for 'difftype' are: diff, diffc, diffu, diffy, wdiff, debdiff; these correspond to plain diffs, context diffs, unified diffs, side-by-side diffs, wdiff output and debdiff output respectively. Use these overrides when colordiff is not able to determine the diff-type automatically.
Alternatively, a construct such as 'cvs diff SOMETHING | colordiff' can be included in ~/.bashrc as follows:
function cvsdiff () { cvs diff $@ | colordiff; }
Or, combining the idea above using 'less':
function cvsdiff () { cvs diff $@ | colordiff |less -R; }
Note that the function name, cvsdiff, can be customized.
By default colordiff returns the exit code of the underlying diff invocation (if there is one), but there are some circumstances where it is useful to force colordiff's exit code to be zero: to do this use the option '--fakeexitcode':
colordiff --fakeexitcode ...
/etc/colordiffrc Central configuration file. User-specific settings can be enabled by copying this file to ~/.colordiffrc and making the appropriate changes.
colordiffrc-lightbg Alternate configuration template for use with terminals having light backgrounds. Copy this to /etc/colordiffrc or ~/.colordiffrc and customize.
colordiffrc-gitdiff Alternate configuration template for use with terminals having dark backgrounds, with colour defaults set to match the output of 'git diff'. Copy this to /etc/colordiffrc or ~/.colordiffrc and customize.
Bug reports and suggestions/patches to davee@sungate.co.uk please.
Dave Ewart colordiff author and Debian packager
Graham Wilson Manual page and XML source author
Colin Tuckley Debian package sponsor
UNZIP(1L)                                                              UNZIP(1L)
unzip - list, test and extract compressed files in a ZIP archive
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]
unzip will list, test, or extract files from a ZIP archive, commonly found on MS-DOS systems.  The default behavior (with no options) is to extract into the current directory (and subdirectories below it) all files from the specified ZIP archive.  A companion program, zip(1L), creates ZIP archives; both programs are compatible with archives created by PKWARE's PKZIP and PKUNZIP for MS-DOS, but in many cases the program options or default behaviors differ.
file[.zip] Path of the ZIP archive(s).  If the file specification is a wildcard, each matching file is processed in an order determined by the operating system (or file system).  Only the filename can be a wildcard; the path itself cannot.  Wildcard expressions are similar to those supported in commonly used Unix shells (sh, ksh, csh) and may contain:
*      matches a sequence of 0 or more characters
?      matches exactly 1 character
[...]  matches any single character found inside the brackets; ranges are specified by a beginning character, a hyphen, and an ending character.  If an exclamation point or a caret (`!' or `^') follows the left bracket, then the range of characters within the brackets is complemented (that is, anything except the characters inside the brackets is considered a match).  To specify a verbatim left bracket, the three-character sequence ``[[]'' has to be used.
(Be sure to quote any character that might otherwise be interpreted or modified by the operating system, particularly under Unix and VMS.)  If no matches are found, the specification is assumed to be a literal filename; and if that also fails, the suffix .zip is appended.  Note that self-extracting ZIP files are supported, as with any other ZIP archive; just specify the .exe suffix (if any) explicitly.
[file(s)] An optional list of archive members to be processed, separated by spaces.  (VMS versions compiled with VMSCLI defined must delimit files with commas instead.  See -v in OPTIONS below.)  Regular expressions (wildcards) may be used to match multiple members; see above.  Again, be sure to quote expressions that would otherwise be expanded or modified by the operating system.
[-x xfile(s)] An optional list of archive members to be excluded from processing.  Since wildcard characters normally match (`/') directory separators (for exceptions see the option -W), this option may be used to exclude any files that are in subdirectories.  For example, ``unzip foo *.[ch] -x */*'' would extract all C source files in the main directory, but none in any subdirectories.  Without the -x option, all C source files in all directories within the zipfile would be extracted.
[-d exdir] An optional directory to which to extract files.  By default, all files and subdirectories are recreated in the current directory; the -d option allows extraction in an arbitrary directory (always assuming one has permission to write to the directory).  This option need not appear at the end of the command line; it is also accepted before the zipfile specification (with the normal options), immediately after the zipfile specification, or between the file(s) and the -x option.  The option and directory may be concatenated without any white space between them, but note that this may cause normal shell behavior to be suppressed.  In particular, ``-d ~'' (tilde) is expanded by Unix C shells into the name of the user's home directory, but ``-d~'' is treated as a literal subdirectory ``~'' of the current directory.
Note that, in order to support obsolescent hardware, unzip's usage screen is limited to 22 or 23 lines and should therefore be considered only a reminder of the basic unzip syntax rather than an exhaustive list of all possible flags.  The exhaustive list follows:
-Z     zipinfo(1L) mode.  If the first option on the command line is -Z, the remaining options are taken to be zipinfo(1L) options.  See the appropriate manual page for a description of these options.
-A     [OS/2, Unix DLL] print extended help for the DLL's programming interface (API).
-c     extract files to stdout/screen (``CRT'').  This option is similar to the -p option except that the name of each file is printed as it is extracted, the -a option is allowed, and ASCII-EBCDIC conversion is automatically performed if appropriate.  This option is not listed in the unzip usage screen.
-f     freshen existing files, i.e., extract only those files that already exist on disk and that are newer than the disk copies.  By default unzip queries before overwriting, but the -o option may be used to suppress the queries.  Note that under many operating systems, the TZ (timezone) environment variable must be set correctly in order for -f and -u to work properly (under Unix the variable is usually set automatically).  The reasons for this are somewhat subtle but have to do with the differences between DOS- format file times (always local time) and Unix-format times (always in GMT/UTC) and the necessity to compare the two.  A typical TZ value is ``PST8PDT'' (US Pacific time with automatic adjustment for Daylight Savings Time or ``summer time'').
-l     list archive files (short format).  The names, uncompressed file sizes and modification dates and times of the specified files are printed, along with totals for all files specified.  If UnZip was compiled with OS2_EAS defined, the -l option also lists columns for the sizes of stored OS/2 extended attributes (EAs) and OS/2 access control lists (ACLs).  In addition, the zipfile comment and individual file comments (if any) are displayed.  If a file was archived from a single-case file system (for example, the old MS- DOS FAT file system) and the -L option was given, the filename is converted to lowercase and is prefixed with a caret (^).
-p     extract files to pipe (stdout).  Nothing but the file data is sent to stdout, and the files are always extracted in binary format, just as they are stored (no conversions).
-t     test archive files.  This option extracts each specified file in memory and compares the CRC (cyclic redundancy check, an enhanced checksum) of the expanded file with the original file's stored CRC value.
-T     [most OSes] set the timestamp on the archive(s) to that of the newest file in each one.  This corresponds to zip's -go option except that it can be used on wildcard zipfiles (e.g., ``unzip -T \*.zip'') and is much faster.
-u     update existing files and create new ones if needed.  This option performs the same function as the -f option, extracting (with query) files that are newer than those with the same name on disk, and in addition it extracts those files that do not already exist on disk.  See -f above for information on setting the timezone properly.
-v     list archive files (verbose format) or show diagnostic version info.  This option has evolved and now behaves as both an option and a modifier.  As an option it has two purposes:  when a zipfile is specified with no other options, -v lists archive files verbosely, adding to the basic -l info the compression method, compressed size, compression ratio and 32-bit CRC.  In contrast to most of the competing utilities, unzip removes the 12 additional header bytes of encrypted entries from the compressed size numbers.  Therefore, compressed size and compression ratio figures are independent of the entry's encryption status and show the correct compression performance.  (The complete size of the encrypted compressed data stream for zipfile entries is reported by the more verbose zipinfo(1L) reports, see the separate manual.) When no zipfile is specified (that is, the complete command is simply ``unzip -v''), a diagnostic screen is printed.  In addition to the normal header with release date and version, unzip lists the home Info-ZIP ftp site and where to find a list of other ftp and non-ftp sites; the target operating system for which it was compiled, as well as (possibly) the hardware on which it was compiled, the compiler and version used, and the compilation date; any special compilation options that might affect the program's operation (see also DECRYPTION below); and any options stored in environment variables that might do the same (see ENVIRONMENT OPTIONS below).  As a modifier it works in conjunction with other options (e.g., -t) to produce more verbose or debugging output; this is not yet fully implemented but will be in future releases.
-z     display only the archive comment.
-a     convert text files.  Ordinarily all files are extracted exactly as they are stored (as ``binary'' files).  The -a option causes files identified by zip as text files (those with the `t' label in zipinfo listings, rather than `b') to be automatically extracted as such, converting line endings, end-of-file characters and the character set itself as necessary.  (For example, Unix files use line feeds (LFs) for end-of-line (EOL) and have no end-of-file (EOF) marker; Macintoshes use carriage returns (CRs) for EOLs; and most PC operating systems use CR+LF for EOLs and control-Z for EOF.  In addition, IBM mainframes and the Michigan Terminal System use EBCDIC rather than the more common ASCII character set, and NT supports Unicode.)  Note that zip's identification of text files is by no means perfect; some ``text'' files may actually be binary and vice versa.  unzip therefore prints ``[text]'' or ``[binary]'' as a visual check for each file it extracts when using the -a option.  The -aa option forces all files to be extracted as text, regardless of the supposed file type.  On VMS, see also -S.
-b     [general] treat all files as binary (no text conversions).  This is a shortcut for ---a.
-b     [Tandem] force the creation files with filecode type 180 ('C') when extracting Zip entries marked as "text". (On Tandem, -a is enabled by default, see above).
-b     [VMS] auto-convert binary files (see -a above) to fixed-length, 512-byte record format.  Doubling the option (-bb) forces all files to be extracted in this format. When extracting to standard output (-c or -p option in effect), the default conversion of text record delimiters is disabled for binary (-b) resp. all (-bb) files.
-B     [when compiled with UNIXBACKUP defined] save a backup copy of each overwritten file. The backup file is gets the name of the target file with a tilde and optionally a unique sequence number (up to 5 digits) appended.  The sequence number is applied whenever another file with the original name plus tilde already exists.  When used together with the "overwrite all" option -o, numbered backup files are never created. In this case, all backup files are named as the original file with an appended tilde, existing backup files are deleted without notice.  This feature works similarly to the default behavior of emacs(1) in many locations.
Example: the old copy of ``foo'' is renamed to ``foo~''.
Warning: Users should be aware that the -B option does not prevent loss of existing data under all circumstances.  For example, when unzip is run in overwrite-all mode, an existing ``foo~'' file is deleted before unzip attempts to rename ``foo'' to ``foo~''.  When this rename attempt fails (because of a file locks, insufficient privileges, or ...), the extraction of ``foo~'' gets cancelled, but the old backup file is already lost.  A similar scenario takes place when the sequence number range for numbered backup files gets exhausted (99999, or 65535 for 16-bit systems).  In this case, the backup file with the maximum sequence number is deleted and replaced by the new backup version without notice.
-C     use case-insensitive matching for the selection of archive entries from the command-line list of extract selection patterns.  unzip's philosophy is ``you get what you ask for'' (this is also responsible for the -L/-U change; see the relevant options below). Because some file systems are fully case-sensitive (notably those under the Unix operating system) and because both ZIP archives and unzip itself are portable across platforms, unzip's default behavior is to match both wildcard and literal filenames case- sensitively.  That is, specifying ``makefile'' on the command line will only match ``makefile'' in the archive, not ``Makefile'' or ``MAKEFILE'' (and similarly for wildcard specifications).  Since this does not correspond to the behavior of many other operating/file systems (for example, OS/2 HPFS, which preserves mixed case but is not sensitive to it), the -C option may be used to force all filename matches to be case-insensitive.  In the example above, all three files would then match ``makefile'' (or ``make*'', or similar).  The -C option affects file specs in both the normal file list and the excluded-file list (xlist).
Please note that the -C option does neither affect the search for the zipfile(s) nor the matching of archive entries to existing files on the extraction path.  On a case-sensitive file system, unzip will never try to overwrite a file ``FOO'' when extracting an entry ``foo''!
-D     skip restoration of timestamps for extracted items.  Normally, unzip tries to restore all meta-information for extracted items that are supplied in the Zip archive (and do not require privileges or impose a security risk).  By specifying -D, unzip is told to suppress restoration of timestamps for directories explicitly created from Zip archive entries.  This option only applies to ports that support setting timestamps for directories (currently ATheOS, BeOS, MacOS, OS/2, Unix, VMS, Win32, for other unzip ports, -D has no effect).  The duplicated option -DD forces suppression of timestamp restoration for all extracted entries (files and directories).  This option results in setting the timestamps for all extracted entries to the current time.
On VMS, the default setting for this option is -D for consistency with the behaviour of BACKUP: file timestamps are restored, timestamps of extracted directories are left at the current time. To enable restoration of directory timestamps, the negated option --D should be specified.  On VMS, the option -D disables timestamp restoration for all extracted Zip archive items.  (Here, a single -D on the command line combines with the default -D to do what an explicit -DD does on other systems.)
-E     [MacOS only] display contents of MacOS extra field during restore operation.
-F     [Acorn only] suppress removal of NFS filetype extension from stored filenames.
-F     [non-Acorn systems supporting long filenames with embedded commas, and only if compiled with ACORN_FTYPE_NFS defined] translate filetype information from ACORN RISC OS extra field blocks into a NFS filetype extension and append it to the names of the extracted files.  (When the stored filename appears to already have an appended NFS filetype extension, it is replaced by the info from the extra field.)
-i     [MacOS only] ignore filenames stored in MacOS extra fields. Instead, the most compatible filename stored in the generic part of the entry's header is used.
-j     junk paths.  The archive's directory structure is not recreated; all files are deposited in the extraction directory (by default, the current one).
-J     [BeOS only] junk file attributes.  The file's BeOS file attributes are not restored, just the file's data.
-J     [MacOS only] ignore MacOS extra fields.  All Macintosh specific info is skipped. Data-fork and resource-fork are restored as separate files.
-K     [AtheOS, BeOS, Unix only] retain SUID/SGID/Tacky file attributes. Without this flag, these attribute bits are cleared for security reasons.
-L     convert to lowercase any filename originating on an uppercase-only operating system or file system.  (This was unzip's default behavior in releases prior to 5.11; the new default behavior is identical to the old behavior with the -U option, which is now obsolete and will be removed in a future release.)  Depending on the archiver, files archived under single-case file systems (VMS, old MS-DOS FAT, etc.) may be stored as all-uppercase names; this can be ugly or inconvenient when extracting to a case-preserving file system such as OS/2 HPFS or a case-sensitive one such as under Unix.  By default unzip lists and extracts such filenames exactly as they're stored (excepting truncation, conversion of unsupported characters, etc.); this option causes the names of all files from certain systems to be converted to lowercase.  The -LL option forces conversion of every filename to lowercase, regardless of the originating file system.
-M     pipe all output through an internal pager similar to the Unix more(1) command.  At the end of a screenful of output, unzip pauses with a ``--More--'' prompt; the next screenful may be viewed by pressing the Enter (Return) key or the space bar.  unzip can be terminated by pressing the ``q'' key and, on some systems, the Enter/Return key.  Unlike Unix more(1), there is no forward- searching or editing capability.  Also, unzip doesn't notice if long lines wrap at the edge of the screen, effectively resulting in the printing of two or more lines and the likelihood that some text will scroll off the top of the screen before being viewed. On some systems the number of available lines on the screen is not detected, in which case unzip assumes the height is 24 lines.
-n     never overwrite existing files.  If a file already exists, skip the extraction of that file without prompting.  By default unzip queries before extracting any file that already exists; the user may choose to overwrite only the current file, overwrite all files, skip extraction of the current file, skip extraction of all existing files, or rename the current file.
-N     [Amiga] extract file comments as Amiga filenotes.  File comments are created with the -c option of zip(1L), or with the -N option of the Amiga port of zip(1L), which stores filenotes as comments.
-o     overwrite existing files without prompting.  This is a dangerous option, so use it with care.  (It is often used with -f, however, and is the only way to overwrite directory EAs under OS/2.)
-P password use password to decrypt encrypted zipfile entries (if any).  THIS IS INSECURE!  Many multi-user operating systems provide ways for any user to see the current command line of any other user; even on stand-alone systems there is always the threat of over-the- shoulder peeking.  Storing the plaintext password as part of a command line in an automated script is even worse.  Whenever possible, use the non-echoing, interactive prompt to enter passwords.  (And where security is truly important, use strong encryption such as Pretty Good Privacy instead of the relatively weak encryption provided by standard zipfile utilities.)