{"id":18438656,"url":"https://github.com/seapagan/lsplus","last_synced_at":"2025-07-23T20:02:55.744Z","repository":{"id":249643905,"uuid":"830242518","full_name":"seapagan/lsplus","owner":"seapagan","description":"Clone of the 'ls' command in Rust. Work in progress and written to learn Rust","archived":false,"fork":false,"pushed_at":"2025-05-05T17:07:39.000Z","size":2127,"stargazers_count":3,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-22T00:53:18.055Z","etag":null,"topics":["command-line-tool","file-listing","ls","rust"],"latest_commit_sha":null,"homepage":"https://seapagan.github.io/lsplus/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seapagan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2024-07-17T22:16:23.000Z","updated_at":"2025-02-10T12:11:09.000Z","dependencies_parsed_at":"2025-02-08T11:33:27.809Z","dependency_job_id":"7fec3e73-7949-4c78-a82f-699934a73e75","html_url":"https://github.com/seapagan/lsplus","commit_stats":null,"previous_names":["seapagan/lsplus"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/seapagan/lsplus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seapagan%2Flsplus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seapagan%2Flsplus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seapagan%2Flsplus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seapagan%2Flsplus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seapagan","download_url":"https://codeload.github.com/seapagan/lsplus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seapagan%2Flsplus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266738657,"owners_count":23976439,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["command-line-tool","file-listing","ls","rust"],"created_at":"2024-11-06T06:21:03.376Z","updated_at":"2025-07-23T20:02:55.078Z","avatar_url":"https://github.com/seapagan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LSPlus - an 'ls' clone written in Rust\n\n[![Rust](https://github.com/seapagan/lsplus/actions/workflows/rust.yml/badge.svg)](https://github.com/seapagan/lsplus/actions/workflows/rust.yml)\n[![GitHub issues](https://img.shields.io/github/issues/seapagan/lsplus)](https://github.com/seapagan/lsplus/issues)\n![Crates.io License](https://img.shields.io/crates/l/lsplus)\n[![Crates.io Version](https://img.shields.io/crates/v/lsplus?link=https%3A%2F%2Fcrates.io%2Fcrates%2Flsplus)](https://crates.io/crates/lsplus)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/73f67c2ab44548298e0660ca73308729)](https://app.codacy.com/gh/seapagan/lsplus/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Build Docs](https://github.com/seapagan/lsplus/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/seapagan/lsplus/actions/workflows/gh-pages.yml)\n\nThis is currently a very simple (though functional) clone of the Unix 'ls' \ncommand written in Rust. It is a learning project for me to learn Rust so \nprobably contains many inefficiencies and bad practices. I'll get better\nwith time! 😁\n\n![lsp output](./docs/src/images/screenshot.png)\n\n\u003c!-- vim-markdown-toc GFM --\u003e\n\n- [Compatibility](#compatibility)\n- [Nerd Fonts](#nerd-fonts)\n- [Installation](#installation)\n  - [Latest Release](#latest-release)\n  - [From Source](#from-source)\n- [Usage](#usage)\n  - [Fuzzy Time](#fuzzy-time)\n  - [Icons](#icons)\n  - [Aliases](#aliases)\n- [Future Plans](#future-plans)\n\n\u003c!-- vim-markdown-toc --\u003e\n\n## Compatibility\n\nThis project is currently only compatible with Unix-like systems (Linux,\nMacOs, etc.). Windows support is planned to be added very soon.\n\n## Nerd Fonts\n\nTo display the folder and file icons, you need to first install a 'Nerd Font' \nfor your terminal. You can find a great selection of Nerd Fonts\n[here](https://www.nerdfonts.com/)\n\nMy personal favourite is `MesoLG Nerd Font`, but there are many others to choose\nfrom. You will also need to set up your terminal to use that font.\n\nIf you **DO NOT** want to install a Nerd Font, pass the `--no-icons` switch to \nthe program.\n\n## Installation\n\n### Latest Release\n\nTo install the latest release of this package, you can use the following command:\n\n```bash\ncargo install lsplus\n```\n\nThis will install the `lsp` binary into your `~/.cargo/bin` directory. Make \nsure that this directory is in your `PATH` environment variable so that you \ncan run the `lsp` command from anywhere.\n\n### From Source\n\nYou can also install the package from the GitHub repository by running the \nfollowing command:\n\n```bash\ncargo install --git https://github.com/seapagan/lsplus.git\n```\n\n## Usage\n\nRun this command in your terminal to list files in the current directory:\n\n```sh\nlsp \u003coptions\u003e \u003cpath | file\u003e\n```\n\nBoth the options and the path are optional. If no path is provided, the current\ndirectory will be listed. If no options are provided, the default options will\nbe used which are similar to the `ls` command.\n\nCurently, only a sub-set of the standard `ls` options are supported. These are:\n\n- `-a` / `--all` - Show hidden files\n- `-A` / `--almost-all` - Show hidden files, but don't show `.` and `..\n- `-p` / `--slash-dirs` - Append a '/' to directories\n- `-l` / `--long` - Show long format listing\n- `-h` / `--human-readable` - Human readable file sizes\n- `-D` / `--sort-dirs` - Sort directories first\n- `--no-icons` - don't show file or folder icons\n- `-Z` / `--fuzzy-time` - Show fuzzy time for file modification times\n\nYou can combine the short options together, e.g. `-laph` will show a long format\nlisting with hidden files, append a '/' to directories, and show human-readable\nfile sizes.\n\nUse the `--help` option to see the full list of options.\n\nThe long-format listing is currently colorized by default and cannot be\ndisabled. This will be made configurable in the future along with adding more\nof the original `ls` options.\n\n### Fuzzy Time\n\nThe `-Z` option will show a fuzzy time for file modification times. This will\nshow the time in a human-readable format, e.g. '2 hours ago', 'yesterday', etc.\n\n![fuzzy date output](./docs/src/images/screenshot3.png)\n\n### Icons\n\nIcons are added to folders, files, and links. There is only a limited set of\nmappings implemented at the moment, but more will be added in the future. Add\nan issue if you have a specific icon you would like to see - even better, add\na Pull Request implementing it! 😁\n\nYou can disable the icons by using the `-no-icons` option.\n\n### Aliases\n\nThe `lsp` command can be aliased to `ls` by adding the following line to your\n`.bashrc`, `.zshrc` or similar file:\n\n```sh\nalias ls='lsp'\n```\n\nYou will need to restart your shell or source your configuration file for the\nalias to take effect.\n\nThe example below shows an alias for ls that uses many of the current options:\n\n```sh\nalias ls='lsp -laph'\n```\n\nThis will show a long format listing with hidden files, append a '/' to\ndirectories, and show human readable file sizes, as in the image above.\n\n## Future Plans\n\nI am planning to add many more features to this project in the future. Check out\nthe [TODO](./TODO.md) file for a list of planned features and improvements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseapagan%2Flsplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseapagan%2Flsplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseapagan%2Flsplus/lists"}