{"id":14980404,"url":"https://github.com/eizedev/psitems","last_synced_at":"2025-10-29T00:30:31.635Z","repository":{"id":55063434,"uuid":"522662226","full_name":"eizedev/PSItems","owner":"eizedev","description":"A PowerShell module that finds files, file content, folders and their information in a really fast and easy way! Similiar to linux/unix find, grep and du commands.","archived":false,"fork":false,"pushed_at":"2023-12-25T01:13:06.000Z","size":1309,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-01T17:38:42.893Z","etag":null,"topics":["du","filesystem","find","get-childitem","grep","items","pester","plaster","platyps","powershell","powershell-core","powershell-gallery","powershell-module","powershell-script","psake","psfind","psgrep","pssize","pwsh","stucco"],"latest_commit_sha":null,"homepage":"https://www.powershellgallery.com/packages/PSItems","language":"PowerShell","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/eizedev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"eizedev"}},"created_at":"2022-08-08T18:24:24.000Z","updated_at":"2024-04-01T17:59:22.000Z","dependencies_parsed_at":"2024-01-18T23:04:57.043Z","dependency_job_id":"f5b37a38-dfc5-4844-9dee-9c583483287a","html_url":"https://github.com/eizedev/PSItems","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eizedev%2FPSItems","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eizedev%2FPSItems/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eizedev%2FPSItems/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eizedev%2FPSItems/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eizedev","download_url":"https://codeload.github.com/eizedev/PSItems/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238743906,"owners_count":19523198,"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":["du","filesystem","find","get-childitem","grep","items","pester","plaster","platyps","powershell","powershell-core","powershell-gallery","powershell-module","powershell-script","psake","psfind","psgrep","pssize","pwsh","stucco"],"created_at":"2024-09-24T14:01:43.513Z","updated_at":"2025-10-29T00:30:31.623Z","avatar_url":"https://github.com/eizedev.png","language":"PowerShell","readme":"# PSItems — fast filesystem search \u0026 content scanning for PowerShell\n\n\u003c!-- === Badges: Core status \u0026 distribution === --\u003e\n| GitHub Actions                                                         | PS Gallery (downloads + version)                                                                          | License                              | Issues / PRs                                                              |\n| ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------- |\n| [![GitHub Actions Status][github-actions-badge]][github-actions-build] | [![PowerShell Gallery][psgallery-badge]][psgallery] [![PS Gallery Version][psgallery-version]][psgallery] | [![License][license-badge]][license] | [![Open Issues][issues-badge]][issues] [![Open PRs][prs-badge]][prs-link] |\n\n\u003c!-- === Badges: Quality \u0026 health (slim) === --\u003e\n| Runtime (pwsh)         | Platforms                     | Quality \u0026 Maintenance                                                                                                                 |\n| ---------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| ![pwsh 7+][pwsh-badge] | ![Platforms][platforms-badge] | [![PSSA][pssa-badge]][pssa-workflow] [![DevSkim][devskim-badge]][devskim-workflow] [![Dependabot][dependabot-badge]][dependabot-link] |\n\n![Logo](res/img/psitems-logo.png)\n\n---\n\nA Linux-style toolkit for PowerShell that’s **fast by default**. It streams from `.NET System.IO.Enumerate*` to keep memory low and throughput high.\n\n## Features at a glance\n- **Cross-platform**: Windows • Linux • macOS (PowerShell **7+**).\n- **Commands**: `psfind` (find files/dirs), `psgrep` (search content), `pssize` (measure sizes).\n- **Linux-like UX**: switches such as `-Iname`, `-Type`, `-Depth`, `-MinDepth`. `-Path` wildcards expand to multiple roots.\n- **Fast**: streaming enumeration with minimal allocations.\n\n---\n\n## Installation\n\n```pwsh\nInstall-Module -Name PSItems -Scope CurrentUser\nImport-Module -Name PSItems\n```\n\n---\n\n## Aliases at a glance\n\n| Aliases                        | Underlying cmdlet  | Linux/Unix analog | Description                         |\n| ------------------------------ | ------------------ | ----------------- | ----------------------------------- |\n| `psfind`, `search`, `ff`, `fi` | `Find-Item`        | `find`            | Find items (files/directories/etc.) |\n| `psgrep`                       | `Find-ItemContent` | `grep`            | Search for text/regex in files      |\n| `pssize`, `size`               | `Get-ItemSize`     | `du`              | Measure size of files/directories   |\n\n---\n\n## Quick start\n\n```pwsh\n# Find: list everything one level down as fast strings\npsfind $HOME -Name '*' -Depth 1\n\n# Find: case-insensitive *.log anywhere\npsfind $HOME -Type File -Iname '*.log' -Recurse\n\n# Size: quick size of your home (one level down), in MB (default)\npssize $HOME -Depth 1\n\n# Grep: find 'TODO' in all PowerShell scripts under your home (recursive)\npsgrep 'TODO' $HOME -Name '*.ps1' -Recurse\n```\n\n\u003e Complete docs for each cmdlet live in `docs/en-US/` and via `Get-Help \u003cCmdletName\u003e -Full`.\n\n---\n\n## Linux `find` ↔︎ `Find-Item` (quick map)\n\n\u003e Full guide with more options \u0026 examples: [res/guides/Linux-find-compatibility.md](res/guides/Linux-find-compatibility.md)\n\n| Linux `find` feature          | `Find-Item` equivalent             | Example (unescape `\\|` when copying)                                                |\n| ----------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------- |\n| Wildcard roots (`/var/*/log`) | `-Path` expands to multiple roots  | `psfind -Path '/var/*/log' -Name '*.log' -Recurse`                                  |\n| Root `/`                      | `/` → `C:\\` on Windows             | `psfind / -Name '*' -Recurse`                                                       |\n| `-name PATTERN`               | `-Name` (platform default casing)  | `psfind / -Name '*.log' -Recurse`                                                   |\n| `-iname PATTERN`              | `-Iname` (always case-insensitive) | `psfind / -Iname '*.exe' -Recurse`                                                  |\n| `-type f` / `-type d`         | `-Type File` / `-Type Directory`   | `psfind / -Type File -Name '*.txt' -Recurse`                                        |\n| `-maxdepth N` / `-mindepth N` | `-Depth N` / `-MinDepth N`         | `psfind / -Depth 2 -Name '*.dll'`                                                   |\n| `-ls`                         | `-As FileSystemInfo`               | `psfind / -As FileSystemInfo -Recurse`                                              |\n| `-exec … {}`                  | Pipe to PowerShell                 | `psfind $HOME -Type File -Iname '*.txt' -Recurse \\| ForEach-Object { Get-Item $_ }` |\n\n**Notes:** Use `-Iname` for portable case-insensitive matching; `-Path` wildcards expand to **multiple roots**; filter size/time/perm in the pipeline.\n\n---\n\n## Testing \u0026 Speed\n\nReproducible, copy‑pasteable benchmarks live here:\n\n- **[res/benchmarks/Testing-and-Speed.md](res/benchmarks/Testing-and-Speed.md)**\n\n**Highlights from a sample run (Windows, SSD):**\n- Names only (strings): PSItems ~**3.23 s** vs Get-ChildItem ~**17.16 s** → **~5.3× faster**\n- Typed output (objects): PSItems ~**3.56 s** vs Get-ChildItem ~**14.19 s** → **~4.0× faster**\n- Depth-limited (Depth = 2): PSItems ~**2.14 s** vs Get-ChildItem ~**11.96 s** → **~5.6× faster**\n- PSItems 0.7.0 vs 0.3.6 (names-only): ~**3.37 s** vs ~**5.70 s** → **~1.7× faster**\n\n\u003e Numbers vary by machine and dataset. The linked doc shows the exact commands you can re-run locally.\n\n---\n\n## Contributing\n\nPRs that improve performance, reliability, cross‑platform behavior, or docs are welcome.\n\n- Issues: \u003chttps://github.com/eizedev/PSItems/issues\u003e\n- Full guide (local dev, platyPS, publishing, DevContainer): **[CONTRIBUTING.md](.github/CONTRIBUTING.md)**\n\n\u003e Publishing to the PowerShell Gallery is automated via GitHub Actions; tags like `v0.7.0` trigger a release.\n\n---\n\n\u003c!-- Badge references --\u003e\n[github-actions-badge]: https://github.com/eizedev/PSItems/workflows/CI/badge.svg\n[github-actions-build]: https://github.com/eizedev/PSItems/actions\n[psgallery-badge]: https://img.shields.io/powershellgallery/dt/PSItems.svg\n[psgallery-version]: https://img.shields.io/powershellgallery/v/PSItems.svg\n[psgallery]: https://www.powershellgallery.com/packages/PSItems\n[license-badge]: https://img.shields.io/github/license/eizedev/PSItems.svg\n[license]: LICENSE\n[issues-badge]: https://img.shields.io/github/issues-raw/eizedev/PSItems.svg\n[issues]: https://github.com/eizedev/PSItems/issues\n[prs-badge]: https://img.shields.io/github/issues-pr/eizedev/PSItems.svg\n[prs-link]: https://github.com/eizedev/PSItems/pulls\n[lastcommit-badge]: https://img.shields.io/github/last-commit/eizedev/PSItems.svg\n[repo]: https://github.com/eizedev/PSItems\n\n[pwsh-badge]: https://img.shields.io/badge/pwsh-7%2B-blue?logo=powershell\n[platforms-badge]: https://img.shields.io/badge/platforms-Windows%20%7C%20Linux%20%7C%20macOS-informational\n[dependabot-badge]: https://img.shields.io/badge/Dependabot-enabled-brightgreen?logo=dependabot\n[dependabot-link]: https://github.com/eizedev/PSItems/security/dependabot\n\n[pssa-badge]: https://github.com/eizedev/PSItems/actions/workflows/powershell.yml/badge.svg\n[pssa-workflow]: https://github.com/eizedev/PSItems/actions/workflows/powershell.yml\n[devskim-badge]: https://github.com/eizedev/PSItems/actions/workflows/devskim.yml/badge.svg\n[devskim-workflow]: https://github.com/eizedev/PSItems/actions/workflows/devskim.yml\n","funding_links":["https://github.com/sponsors/eizedev"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feizedev%2Fpsitems","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feizedev%2Fpsitems","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feizedev%2Fpsitems/lists"}