Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxim2266/lsch
lsch: list all added, deleted, and modified files in the current directory and its subdirectories.
https://github.com/maxim2266/lsch
change-detection directory-tracker linux lua
Last synced: 2 months ago
JSON representation
lsch: list all added, deleted, and modified files in the current directory and its subdirectories.
- Host: GitHub
- URL: https://github.com/maxim2266/lsch
- Owner: maxim2266
- License: bsd-3-clause
- Created: 2015-11-08T18:50:35.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-06-21T10:38:33.000Z (7 months ago)
- Last Synced: 2024-06-22T03:41:44.856Z (7 months ago)
- Topics: change-detection, directory-tracker, linux, lua
- Language: Lua
- Homepage:
- Size: 81.1 KB
- Stars: 14
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## lsch: list all added, deleted, and modified files in the current directory and its subdirectories.
Another little command line tool for Linux to track modifications within a directory tree.
### Invocation
```
▶ lsch --help
Usage: lsch [CMD] [OPTIONS]...List all added, deleted, and modified files in the current directory and its subdirectories.
Without CMD argument the tool shows all changes made since the last reset.
Options:
-0 use ASCII null as output separatorThe CMD argument, if given, must be one of the following:
init create empty change tracking database in the current directory
Options:
-f,--force discard any previous tracking data
reset accept current state as the reference for further change tracking
help,-h,--help display this help and exit
```Modified items are displayed one per line, each prefixed with a status symbol and a space.
The status symbol is '`+`' for added files, '`-`' for deleted files, and '`*`' for modified files.
Only regular files and symbolic links are tracked. The current directory and all its sub-directories
must not be modified while the scan is in progress.The tool is not meant to replace version control systems like `svn` or `git`, instead
it provides much simpler functionality, basically limited to detecting changed files only.
It does not store any `diff` information, nor it maintains any history beyond the state of the
directory tree at the last `reset`. The same time the tool is useful in scenarios where
only the names of the changed (deleted, modified) files are important, for example, when creating an
incremental backup.### Technical details
The tool operates on the current directory only. The `lsch init` command initialises the directory
for tracking by creating `.lsch.db` file. The file contains the state of the directory and its
sub-directories, and is updated on each `lsch reset`.Internally, the tool relies on `sha256sum` utility for calculating checksums of files. Those checksums
are used for change detection.Symbolic links are not followed, only their target pathnames get compared.
### System requirements
Lua version 5.3, plus the following (well-known) Linux utilities:
* `sha256sum`
* `find`
* `gzip`
* `readlink`
* `xargs`So far the tool has been tested on Linux Mint from version 20.3 and above, but it is likely to work
on other (at least Debian-based) Linux distributions.### Installation
None as such, just run `make`, and then copy the file `lsch` over to a directory listed in
your `PATH` environment variable.