sfic(1)

πŸ“¦ version 0.1.7, in alpine 3.22, alpine 3.23, alpine 3.24

🌸 NAME 🌸

hii bestie πŸ’– this is sfic(1) from the General Commands Manual β€” aka Simple File Integrity Checker. she's iconic, she checks files, she keeps receipts. periodt πŸ’…


✨ SYNOPSIS ✨

okay so here's the exact shape of the vibe, no cap:

sfic [options] --add  database [ dirspecs   | --file   filename  ]

sfic [options] --delete  database  [ dirspecs  | --file  filename ]

sfic [options] --list  database

sfic [options] --old database --new database

sfic [options] --old database  [ direspecs ]

yes, the last line really says direspecs β€” we're keeping it exactly, periodt 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so sfic saves information about the state of a filesystem to a database. Two databases can be compared to determine what files have been added, deleted or modified. and here's the lowkey best part: sfic does not require an entire filesystem to be indexed β€” individual files can be specified for addition or deletion at any time. The list of files to add or delete are given on the command-line, unless the --file option is used. fr fr, she's flexible like that ✨


πŸ’… OPTIONS πŸ’…

  • --file filename β€” reads a list of files to add / delete from the database from filename, one per line. If the filespec is -, then read the list of files from stdin.
  • --quiet (-q) β€” makes output quieter. Can be used more than once to reduce output further. See NOTES below for more information on output verbosity.
  • --verbose (-v) β€” increases the verbosity. Can be used more than once. See NOTES below for more information on output verbosity.
  • --fast (-F) β€” prevents the sha256 hash from being generated on regular files.
  • --recursive (-R) β€” turns on recursion. For an add operation, the contents of any specified directory (and all subdirectories) will be added to the database. For a delete operation, any directory specified in a delete will also have all child entries deleted from the database.
  • --one-file-system (-x) β€” when recursion is turned on, sfic will add entries for directories that are mount points, but will not recurse into those directories. This allows special directories, such as /tmp or /proc, to be excluded from a database.
  • --ignore-trivial (-t) β€” when recursion is turned on, sfic will ignore size and time changes to entries for special files (where "special" is anything other than a file or symlink.) This prevents directories from being listed because a file was added or deleted, and prevents devices/sockets/FIFOs from being listed because they were in use (for example, /dev/console).
  • --mask (-m) mask β€” specifies what to compare or list. The mask is composed of an array of the following characters:
    • p β€” permissions (and file type)
    • i β€” inode
    • n β€” number of links
    • u β€” user owner
    • g β€” group owner
    • s β€” size
    • a β€” access time
    • m β€” modified time
    • c β€” creation time
    • h β€” hash

When listing a database, the mask specifies what's listed and in what order. Each element is tab separated, and elements may be specified more than once. For instance, a mask of shs will list the file size, the hash, and the file size (a second time), and finally the file name. A mask of "" prints the file names only.

  • --ignore (-i) type β€” specifies file types to ignore when doing adds, deletes or compares. The types are composed of an array of the following characters:
    • b β€” blockdev
    • c β€” chardev
    • d β€” directory
    • f β€” regular file
    • l β€” symlink
    • p β€” pipe (FIFO)
    • s β€” socket

πŸ”₯ NOTES πŸ”₯

When comparing database, sfic has several four levels of verbosity: NONE, TERSE, BRIEF, and VERBOSE. TERSE is the default. (the original says "several four," and honestly we love that for her 😭)

  • NONE β€” No output is printed. (not very useful.)
  • TERSE β€” Each modified file is preceded by the letter A, D, or U. (cvs output style.)
  • BRIEF β€” Each modified file is preceded by the word Added, Deleted, or Updated.
  • VERBOSE β€” The words >ADDED>>> or <DELETED< are printed for new or removed files. For updated files, a listing of the specified mask elements that were changed is printed.

When given an oldbase but not a new name, sfic will compare the contents of the old database to the filesystem. Only files given on the command line are checked. This means "deletes" will not be flagged β€” only adds/changes. iykyk πŸ‘‘


πŸ’€ BUGS πŸ’€

Probably many. I mean... same, but she's still iconic πŸ˜­πŸ’–


πŸ‘‘ AUTHORS πŸ‘‘

  • Nathan Angelacos <nangel@users.sourceforge.net>
  • Natanael Copa <ncopa@users.sourceforge.net>

🌈 SEE ALSO 🌈

yafic, Tripwire, aide. go give them a little look, bestie 🫢✨


okay that's the whole sfic(1) page β€” version/source tag sfic(1), dated June 2006. kiss kiss, mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from