{"id":18840237,"url":"https://github.com/maxim2266/lsch","last_synced_at":"2025-04-14T07:07:07.260Z","repository":{"id":151956879,"uuid":"45793908","full_name":"maxim2266/lsch","owner":"maxim2266","description":"lsch: list all added, deleted, and modified files in the current directory and its subdirectories.","archived":false,"fork":false,"pushed_at":"2025-02-19T22:45:44.000Z","size":85,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-14T07:06:49.455Z","etag":null,"topics":["change-detection","directory-tracker","linux","lua"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxim2266.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-08T18:50:35.000Z","updated_at":"2025-04-09T10:10:42.000Z","dependencies_parsed_at":"2024-01-11T22:57:16.012Z","dependency_job_id":"8540fcac-c8e3-46dc-b202-e668bfbf3dae","html_url":"https://github.com/maxim2266/lsch","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxim2266%2Flsch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxim2266%2Flsch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxim2266%2Flsch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxim2266%2Flsch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxim2266","download_url":"https://codeload.github.com/maxim2266/lsch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837278,"owners_count":21169374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["change-detection","directory-tracker","linux","lua"],"created_at":"2024-11-08T02:46:56.133Z","updated_at":"2025-04-14T07:07:07.213Z","avatar_url":"https://github.com/maxim2266.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"## lsch: list all added, deleted, and modified files in the current directory and its subdirectories.\n\nAnother little command line tool for Linux to track modifications within a directory tree.\n\n### Invocation\n```\n▶ lsch --help\nUsage: lsch [CMD] [OPTIONS]...\n\nList all added, deleted, and modified files in the current directory and its subdirectories.\n\nWithout CMD argument the tool shows all changes made since the last reset.\n  Options:\n    -0   use ASCII null as output separator\n\nThe CMD argument, if given, must be one of the following:\n  init            create empty change tracking database in the current directory\n                  Options:\n                    -f,--force   discard any previous tracking data\n  reset           accept current state as the reference for further change tracking\n  help,-h,--help  display this help and exit\n```\n\nModified items are displayed one per line, each prefixed with a status symbol and a space.\nThe status symbol is '`+`' for added files, '`-`' for deleted files, and '`*`' for modified files.\nOnly regular files and symbolic links are tracked. The current directory and all its sub-directories\nmust not be modified while the scan is in progress.\n\nThe tool is not meant to replace version control systems like `svn` or `git`, instead\nit provides much simpler functionality, basically limited to detecting changed files only.\nIt does not store any `diff` information, nor it maintains any history beyond the state of the\ndirectory tree at the last `reset`. The same time the tool is useful in scenarios where\nonly the names of the changed (deleted, modified) files are important, for example, when creating an\nincremental backup.\n\n### Technical details\nThe tool operates on the current directory only. The `lsch init` command initialises the directory\nfor tracking by creating `.lsch.db` file. The file contains the state of the directory and its\nsub-directories, and is updated on each `lsch reset`.\n\nInternally, the tool relies on `sha256sum` utility for calculating checksums of files. Those checksums\nare used for change detection.\n\nSymbolic links are not followed, only their target pathnames get compared.\n\n### System requirements\nLua version 5.3, plus the following (well-known) Linux utilities:\n* `sha256sum`\n* `find`\n* `gzip`\n* `readlink`\n* `xargs`\n\nSo far the tool has been tested on Linux Mint from version 20.3 and above, but it is likely to work\non other (at least Debian-based) Linux distributions.\n\n### Installation\nNone as such, just run `make`, and then copy the file `lsch` over to a directory listed in\nyour `PATH` environment variable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxim2266%2Flsch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxim2266%2Flsch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxim2266%2Flsch/lists"}