GoboLinux DownloadsDocumentationCommunityRecipesPackagesScreenshots

Article | Discussion | Edit | History

SystemFind

From GoboLinux Knowledge Base

Jump to: navigation, search

SystemFind is a special 'find' utility for searches in the /System hierarchy.

In a usual Linux distro, a binary, library or header can be in one of many places. In GoboLinux, we have the /System/Links tree that works like a natural index: every binary is under /System/Links/Executables, every library under Libraries, etc. To know where exactly a program is (in other words, which package it is a part of), one can just do "l" (alias for List, and ls -l equivalent) to see where does the link point too. For executables, the which command is even more convenient.

Based on this idea of the /System/Links tree as a "filesystem index", we have the SystemFind script, which scans it and returns the linked files directly. Scanning /S/L is much faster than scanning the entire /Programs tree: there are less directories to traverse (and at least in ReiserFS, symlinks are stored in the same inode as the directory, making it a time and space efficient operation).

Additionally, since directories like /System/Links/Libraries and /System/Links/Executables are accessed frequently, they are usually in the disk cache.

Usage: SystemFind [<flags>] <search_pattern>

Options:

  • -h, --help - Shows this help.
  • -v, --version - Show program version.
  • -V, --verbose - Enable verbose mode.
  • -e, --executables - Search for executables in /System/Links/Executables.
  • -l, --libraries - Search for libraries in /System/Links/Libraries.
  • -i, --headers - Search for include headers in /System/Links/Headers.
  • -s, --settings - Search for settings in /System/Settings.
  • -m, --manuals - Search for manuals in /System/Links/Manuals.
  • -q, --quick - By default, it will descend through symlinks that point to directories, scanning the actual files. If you know you're looking for a file that's in the top level of a directory hierarchy (man pages, executables, C libraries, etc.), use --quick so that directory symlinks are not fully traversed, greatly speeding up your search. (Note that this was the default behavior in old versions of SystemFind.)

If no flags are set, all system locations are scanned.

Examples:

SystemFind -i -l freetype


Scripts
Documentation

PackagesCompiling from source

Scripts

AddUserAttachProgramAugmentCommandNotFoundDatabaseCheckDependantsCheckDependenciesCleanModulesColorMakeCommandNotFoundCreateInitRDCreatePackageCreateRootlessEnvironmentDeduceNameDependenciesDescribeProgramDetachProgramDisableProgramFiboSandboxFilterColorsFilterLinesFindPackageFindQuickFixAttributesFixDirReferencesFixInfoGenBuildInformationGetAvailableGoboPathGrepQuickGrepReplaceGuessLatestGuessProgramCaseHasCompatiblePackageHashesinstallInstallPackageIsExecutableKillProcessLinkOrExpandAllListListProgramFilesMergeTreemkinitrd.plMultiGrepNamingConventionsNoRecipePrepareProgramPrioritiseUpdatesRemoveBrokenRemoveEmptyRemoveProgramRenameRescueInstallPackageRescueSymlinkProgramSandboxInstallScriptFunctionsSignProgramSuggestDuplicatesSuggestUpdatesSuperUserNameSymlinkProgramSystemFindSystemInfoUnionSandboxUpdateSettingsUpgradeSystemUseFlagsusleepVerifyProgramwhich

See also

CompileRootless

Personal tools