SUMMER(1)
β¨ SUMMER(1) β¨
okay bestie, pull up a chair, because this is summer from the Chiark-utils-bin crew and it is literally the moment. π
π NAME π
summer β print checksum and system metainformation for files π¦
πΈ SYNOPSIS πΈ
summer -ACDbfqtx [startpoint...]
β¨ DESCRIPTION β¨
summer prints the MD5 checksum of the contents, and the system metainformation (ownership, permissions, timestamps, etc.), for a file β or recursively for a whole entire directory tree. no cap. π
Every command line argument should be a file or directory to be processed. if it's a directory then it gets processed and then its contents get processed too, recursively, like it's going down the whole family tree. π³ If no startpoints are specified on the command line then summer will read a list of newline-separated startpoints from standard input. yes queen, stdin is valid.
Since summer correctly handles devices, FIFOs and other non-regular files, it is useful for generating and comparing summaries of arbitrary directory trees where md5sum alone would not be. it's giving "md5sum but with main character energy". π
π OUTPUT FORMAT π
summer prints one line of information for each filesystem object it processes. each line has these columns, in this order:
- MD5 checksum (in hex) or file type information
- Size of file in bytes
- File access rights (in octal)
- User ID of owner (in decimal)
- Group ID of owner (in decimal)
atime(time of last access, decimaltime_t)mtime(time of last modification)ctime(time of last status change)- Filename
For regular files, the first column is the md5sum. For directories, pipes, symlinks and sockets it is the literal string dir, mountpoint, pipe, symlink or socket as appropriate. For devices it begins with c for character or b for block devices, followed by the device number as a single 32 bit hex number and as four separate 8 bit decimal numbers (most significant first). π§
Note that any bytes in the filename other than printing 7-bit ASCII are escaped using \xNN syntax, where NN are two hex digits; backslashes are also escaped in this way. This makes the output unambiguous β fr fr, no vibes-based guessing. Filenames will be relative if the relevant startpoint was relative, and absolute if it was absolute.
For symlinks the filename column is followed by -> (note the spaces, bestie, they matter π) and the target of the link, again escaped, as above.
π OPTIONS π
-Aβ Do not print theatime(time of last access). Theatimecolumn will be omitted. bye column!-Cβ Do not print thectime(time of last status change). Thectimecolumn will be omitted. she's not coming.-Mβ Do not print themtime(time of last modification). Themtimecolumn will be omitted. gone girl.-Dβ Do not print directory sizes. The size column for directories will readdir. iconic.-bβ Do not printmtime(time of last modification) for symbolic links. Themtimefield for symbolic links will readlink.-Bβ Do not print any times for special files, symlinks, sockets, or fifos. Theatime,mtimeandctimefields for these objects will readchar,block,link,sockorpipeinstead. a whole no-times era. π«Ά-fβ Include information about errors encountered (for example, unreadable files) in the output, and continue processing. The default is to print error information to standard error and stop immediately an error is encountered. no chill mode enabled.-xβ Do not cross mountpoints while recursing into subdirectories. Startpoints which are mountpoints are descended into. boundaries, bestie. π-qβ Suppress the progress information whichsummernormally prints to standard error. quiet luxury. π€«-tβ Set the field separator between the information and the filename to a tab character (default is space).-fβ Normally any errors (problems accessing files including nonexistent startpoings, and the like) are fatal; an error message is reported tostderr.
With -f errors are nonfatal and the problems are reported inline. The filesystem object with the problem is reported in the normal way except that instead of the checksum, the string \[problem[: details]] appears. Fields whose value could not be determined are printed as ?.
-hβ Print a brief usage message tostderr(and do nothing else, exiting nonzero). short and sweet, and then she leaves. π
π PARSING THE OUTPUT π
If the first character in the line is \[, then the first (checksum or type) field is everything until the first subsequent ]; this may be of variable length and will be followed by one or more spaces. Otherwise the first field has a fixed width: 64 characters, the size of an MD5 checksum represented in hex, and is followed by a single space.
The metadata fields are space-separated but are also space-padded to a minimum width: 10 characters for sizes and times and ids; 4 characters for the mode.
The filename field, and optional link target information, are of variable length, but they are escaped so that they do not contain spaces. so you can split on whitespace without crying. π
π AUTHOR π
summer is Copyright (C) 2003-2007 Ian Jackson <ian@chiark.greenend.org.uk>
This manpage was written by Peter Maydell and subsequently improved by Ian Jackson. It is Copyright (C) 2006 Peter Maydell <pmaydell@chiark.greenend.org.uk> Copyright (C) 2007 Ian Jackson <ian@chiark.greenend.org.uk>
This is free software, distributed under the GNU General Public Licence, version 3 or (at your option) any later version; see /usr/share/doc/chiark-utils-bin/copyright or /usr/share/common-licenses/GPL-3 for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. π
and that's the whole page, bestie β this lil Debian-flavoured drop landed back in December 2006, so shoutout to the Debian packagers and to SUMMER(1) herself for staying iconic. go checksum something pretty. ππβ¨
π¦ where this page comes from
- debian bookworm: chiark-utils-bin 7.0.0
- debian trixie: chiark-utils-bin 8.0.1
- ubuntu jammy: chiark-utils-bin 6.1.2+nmu1
- ubuntu noble: chiark-utils-bin 7.0.0build2
- ubuntu questing: chiark-utils-bin 8.0.1
- ubuntu resolute: chiark-utils-bin 8.0.1build1
- ubuntu stonking: chiark-utils-bin 8.0.1build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms