{"id":28906770,"url":"https://github.com/gigachad80/gilchrist","last_synced_at":"2026-04-08T18:06:01.455Z","repository":{"id":299981327,"uuid":"1004806222","full_name":"gigachad80/Gilchrist","owner":"gigachad80","description":"Unix-like utilities for Windows - wc, find, and rm utilities in one powerful executable","archived":false,"fork":false,"pushed_at":"2025-06-19T09:15:24.000Z","size":79,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-19T09:20:44.500Z","etag":null,"topics":["cli","find","go","golang","linux","powershell","rm","terminal","unix","unix-utilities","unix-utility","utilities","utils","wc","windows","windows-11"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gigachad80.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,"zenodo":null}},"created_at":"2025-06-19T07:56:57.000Z","updated_at":"2025-06-19T09:15:28.000Z","dependencies_parsed_at":"2025-06-19T09:21:00.950Z","dependency_job_id":"4d606f2c-f475-478e-a696-de56802d42c2","html_url":"https://github.com/gigachad80/Gilchrist","commit_stats":null,"previous_names":["gigachad80/gilchrist"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gigachad80/Gilchrist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FGilchrist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FGilchrist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FGilchrist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FGilchrist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gigachad80","download_url":"https://codeload.github.com/gigachad80/Gilchrist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FGilchrist/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261143159,"owners_count":23115677,"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":["cli","find","go","golang","linux","powershell","rm","terminal","unix","unix-utilities","unix-utility","utilities","utils","wc","windows","windows-11"],"created_at":"2025-06-21T15:09:52.617Z","updated_at":"2025-12-30T22:28:14.491Z","avatar_url":"https://github.com/gigachad80.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Project Name : gilchrist\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Maintained%3F-yes-purple.svg\" alt=\"Maintenance\"\u003e\n  \u003ca href=\"https://github.com/user/gilchrist/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\" alt=\"Contributions Welcome\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/c7de617d-6ace-4752-b0d7-9cb4602cf22c\" alt=\"Description\" width=\"180px\"\u003e\n\u003c/p\u003e\n\n\n### 📌 Overview\n\n**gilchrist** is your essential multi-command utility suite that brings the power of Unix/Linux command-line tools directly to Windows environments. While Windows users struggle with limited native text processing and file management capabilities, gilchrist provides familiar `wc`, `find`, and `rm` commands with full feature parity to their Unix counterparts.\n\nWhether you're counting lines in log files, searching through directory hierarchies, or safely removing files and directories, gilchrist delivers consistent Unix-like behavior optimized for Windows workflows. No more wrestling with PowerShell's verbose syntax or missing your favorite Linux tools - get the familiar command experience you know and love.\n\n\n\n---\n\n### 📚 Requirements \u0026 Dependencies\n\n- **Windows 7.0 or later**\n- No additional dependencies required\n- Single portable executable\n- Golang ( if you want to build from source )\n\n---\n\n\u003cp align=\"center\"\u003e\n\n## ⚡ Installation\n\n\u003c/p\u003e\n\n### If you have Git installed :\n1. Git clone this repo \n\n```\ngit clone https://github.com/gigachad80/Gilchrist\ncd Gilchrist\n```\n2. Now build Go executable : \n\n```\ngo build -o gilchrist.exe\n```\n3. Run Powershell ISE as administrator and Go to the direcctory where you have cloned the repo then run this command :\n\n```\n.\\install-gilchrist.ps1\n```\n\n### If you haven't Git installed . \n\n1. Go to releases section and download the exe file as per your architecture. \n\n2. Now , Run Powershell ISE as administrator and Go to the direcctory where you have cloned the repo then run this command .\n\n```\n.\\install-gilchrist.ps1\n```\n\n\n### 🔧 Features \u0026 Command Suite\n\n### Core Commands\n\n- ✅ **`wc`** - Word, line, character, and byte counting (GNU wc compatible)\n- ✅ **`find`** - File and directory search with powerful filtering\n- ✅ **`rm`** - Safe file and directory removal with confirmation options\n\n### Universal Features\n\n- ✅ **Windows native** - Works in Command Prompt and PowerShell\n- ✅ **Unix compatibility** - Familiar syntax and behavior\n- ✅ **Stdin support** - Seamless pipe integration\n- ✅ **Error handling** - Robust error reporting and recovery\n- ✅ **Help system** - Built-in help for all commands\n\n---\n\n### 📖 Command Reference\n\n### 🔢 WC Command - Word Count Utility\n\nCount lines, words, characters, and bytes in files or stdin input.\n\n#### Syntax\n```cmd\ngilchrist wc [OPTIONS] [FILE...]\n```\n\n#### Options\n| Option | Description |\n|--------|-------------|\n| `-l` | Print newline counts |\n| `-w` | Print word counts |\n| `-c` | Print byte counts |\n| `-m` | Print character counts |\n| `-L` | Print maximum line length (character count) |\n| `-h` | Display help |\n\n#### Default Behavior\nWhen no options are specified, `wc` shows lines, words, and bytes (equivalent to `-l -w -c`).\n\n#### Examples\n```cmd\n# Count lines, words, and bytes (default)\ngilchrist wc file.txt\n     150     842    5234 file.txt\n\n# Count only lines\ngilchrist wc -l *.txt\n     150 file1.txt\n     200 file2.txt\n     350 total\n\n# Count characters (Unicode-aware)\ngilchrist wc -m unicode.txt\n    1250 unicode.txt\n\n# Find longest line\ngilchrist wc -L code.js\n      89 code.js\n\n# Process from stdin\ntype largefile.txt | gilchrist wc -l\n    5000\n\n# Multiple files with totals\ngilchrist wc -lwc *.log\n     100    500   2500 app.log\n     250   1200   6000 error.log\n     350   1700   8500 total\n\n# Combined flags\ngilchrist wc -lwcmL report.txt\n     42    156    892    856     78 report.txt\n```\n\n### 🔍 FIND Command - File Search Utility\n\nSearch for files and directories with powerful filtering and action capabilities.\n\n#### Syntax\n```cmd\ngilchrist find [PATH...] [EXPRESSION...]\n```\n\n#### Options\n| Option | Description |\n|--------|-------------|\n| `-name \u003cpattern\u003e` | File name pattern (glob, case-sensitive) |\n| `-iname \u003cpattern\u003e` | File name pattern (glob, case-insensitive) |\n| `-type \u003cf\\|d\u003e` | File type: 'f' for files, 'd' for directories |\n| `-delete` | Delete found files/directories (USE WITH CAUTION!) |\n| `-maxdepth \u003cn\u003e` | Maximum directory descent level |\n| `-mindepth \u003cn\u003e` | Minimum directory descent level |\n| `-h` | Display help |\n\n#### Pattern Matching\n- `*` - Matches any sequence of characters\n- `?` - Matches any single character\n- `[abc]` - Matches any character in brackets\n- Case sensitivity controlled by `-name` vs `-iname`\n\n#### Examples\n```cmd\n# Find all .txt files in current directory and subdirectories\ngilchrist find . -name \"*.txt\"\n./documents/readme.txt\n./logs/debug.txt\n./temp/backup.txt\n\n# Find directories case-insensitively\ngilchrist find C:\\Users -iname \"*temp*\" -type d\nC:\\Users\\Admin\\AppData\\Local\\Temp\nC:\\Users\\Admin\\Documents\\Templates\n\n# Limit search depth\ngilchrist find . -maxdepth 2 -name \"*.log\"\n./app.log\n./logs/error.log\n\n# Find and delete (DANGEROUS - use with care!)\ngilchrist find ./temp -name \"*.tmp\" -delete\ngilchrist find: deleted ./temp/cache.tmp\ngilchrist find: deleted ./temp/session.tmp\n\n# Find files not in immediate directory\ngilchrist find . -mindepth 2 -name \"*.js\"\n./src/components/app.js\n./src/utils/helper.js\n\n# Complex search: JavaScript files in src, max 3 levels deep\ngilchrist find ./src -maxdepth 3 -iname \"*.js\" -type f\n./src/index.js\n./src/components/Header.js\n./src/utils/api.js\n\n# Find empty directories (no pattern matches everything)\ngilchrist find . -type d -maxdepth 1\n./\n./empty_folder\n./src\n```\n\n### 🗑️ RM Command - File Removal Utility\n\nRemove files and directories with safety features and confirmation options.\n\n#### Syntax\n```cmd\ngilchrist rm [OPTIONS] FILE...\n```\n\n#### Options\n| Option | Description |\n|--------|-------------|\n| `-r`, `-R` | Remove directories recursively |\n| `-f` | Force removal, ignore nonexistent files |\n| `-i` | Interactive mode - prompt before removal |\n| `-v` | Verbose mode - explain what's being done |\n| `-h` | Display help |\n\n#### Safety Features\n- **Directory protection**: Won't remove directories without `-r`\n- **Interactive confirmation**: `-i` flag prompts for each removal\n- **Non-destructive by default**: Fails safely on errors\n- **Force override**: `-f` suppresses most errors and prompts\n\n#### Examples\n```cmd\n# Remove a single file\ngilchrist rm oldfile.txt\n# (silently removes if successful)\n\n# Remove with confirmation\ngilchrist rm -i important.txt\ngilchrist rm: remove 'important.txt'? y\nremoved 'important.txt'\n\n# Remove directory recursively\ngilchrist rm -r old_project/\n# (removes entire directory tree)\n\n# Verbose removal\ngilchrist rm -v *.tmp\nremoved 'cache.tmp'\nremoved 'session.tmp'\nremoved 'backup.tmp'\n\n# Force removal (ignore errors)\ngilchrist rm -f nonexistent.txt\n# (no error message, continues)\n\n# Interactive recursive removal\ngilchrist rm -ri temp_folder/\ngilchrist rm: remove directory 'temp_folder/'? y\n# (removes after confirmation)\n\n# Combined flags - force recursive verbose\ngilchrist rm -rfv old_logs/\nremoved 'old_logs/app.log'\nremoved 'old_logs/error.log'\nremoved 'old_logs/'\n\n# Remove multiple files interactively\ngilchrist rm -i *.backup\ngilchrist rm: remove 'file1.backup'? y\ngilchrist rm: remove 'file2.backup'? n\nnot removing 'file2.backup'\nremoved 'file1.backup'\n```\n\n---\n\n## 🔥 Real-World Use Cases\n\n### Log Analysis Workflow\n```cmd\n# Count total log entries\ngilchrist wc -l *.log\n    1500 app.log\n    2300 error.log\n    3800 total\n\n# Find all log files in subdirectories\ngilchrist find . -name \"*.log\" -type f\n./logs/app.log\n./logs/error.log\n./archive/old.log\n\n# Clean up old temporary logs\ngilchrist find ./temp -name \"*.log\" -delete\ngilchrist find: deleted ./temp/debug.log\ngilchrist find: deleted ./temp/trace.log\n\n# Remove log files older than certain pattern\ngilchrist rm -v ./archive/*.log\nremoved './archive/2023-01.log'\nremoved './archive/2023-02.log'\n```\n\n### Development Workflow\n```cmd\n# Count lines of code in project\ngilchrist wc -l *.go *.js *.py\n     450 main.go\n     320 utils.go\n     680 app.js\n     200 helper.py\n    1650 total\n\n# Find all source files\ngilchrist find . -name \"*.go\" -o -name \"*.js\"\n./main.go\n./utils.go\n./frontend/app.js\n\n# Clean build artifacts\ngilchrist find . -name \"*.exe\" -o -name \"*.tmp\" -delete\n\n# Remove node_modules safely\ngilchrist rm -rf node_modules/\n```\n\n### System Maintenance\n```cmd\n# Find large directories\ngilchrist find C:\\Users -type d -maxdepth 2\nC:\\Users\\AppData\nC:\\Users\\Documents\nC:\\Users\\Downloads\n\n# Count files in Downloads\ngilchrist find C:\\Users\\%USERNAME%\\Downloads -type f | gilchrist wc -l\n     156\n\n# Clean temporary files\ngilchrist find %TEMP% -name \"*.tmp\" -delete\ngilchrist rm -f %TEMP%\\*.log\n\n# Find configuration files\ngilchrist find . -iname \"*.config\" -o -iname \"*.ini\"\n./app.config\n./settings.ini\n```\n\n---\n\n\u003cp align=\"center\"\u003e\n\n## 🏆 gilchrist vs Windows Native Commands\n\n\u003c/p\u003e\n\n### 🤡 Windows Native vs 🗿 gilchrist: The Epic Battle\n\n| **Task** | **Windows Native 🤡** | **gilchrist 🗿** | **Winner** |\n|----------|----------------------|----------------|------------|\n| **Count Lines** | `Get-Content file.txt \\| Measure-Object -Line` | `gilchrist wc -l file.txt` | 🗿 **Familiar Unix syntax** |\n| **Count Words** | `(Get-Content file.txt \\| Out-String \\| Measure-Object -Word).Words` | `gilchrist wc -w file.txt` | 🗿 **Single command** |\n| **Find Files** | `Get-ChildItem -Recurse -Filter \"*.txt\"` | `gilchrist find . -name \"*.txt\"` | 🗿 **Shorter, clearer** |\n| **Remove Directory** | `Remove-Item -Recurse -Force folder\\` | `gilchrist rm -rf folder/` | 🗿 **Unix familiarity** |\n| **Interactive Delete** | `Remove-Item -Confirm folder\\` | `gilchrist rm -i folder` | 🗿 **Simpler flag** |\n| **Case-insensitive Search** | `Get-ChildItem -Recurse \\| Where-Object {$_.Name -like \"*PATTERN*\"}` | `gilchrist find . -iname \"*pattern*\"` | 🗿 **Built-in flag** |\n\n### 📊 Complex Operations Comparison\n\n| **Operation** | **Windows PowerShell 🤡** | **gilchrist 🗿** | **Complexity** |\n|---------------|---------------------------|----------------|----------------|\n| **Count + Find Pattern Files** | `Get-ChildItem -Recurse -Filter \"*.log\" \\| ForEach-Object { Get-Content $_ \\| Measure-Object -Line }` | `gilchrist find . -name \"*.log\" \\| xargs gilchrist wc -l` | **PS: Pipeline hell** vs **WG: Simple pipe** |\n| **Find + Delete with Confirmation** | `Get-ChildItem -Recurse -Filter \"*.tmp\" \\| Remove-Item -Confirm` | `gilchrist find . -name \"*.tmp\" -delete` | **PS: Two commands** vs **WG: One action** |\n| **Recursive Verbose Removal** | `Remove-Item -Recurse -Verbose -Force folder\\` | `gilchrist rm -rfv folder/` | **PS: Long flags** vs **WG: Compact flags** |\n| **Multi-level Directory Search** | `Get-ChildItem -Recurse -Depth 2 -Directory \\| Where-Object {$_.Name -like \"*cache*\"}` | `gilchrist find . -maxdepth 2 -type d -iname \"*cache*\"` | **PS: Complex pipeline** vs **WG: Clear flags** |\n\n### 🔥 Real-World Scenarios\n\n#### Scenario 1: Project Statistics\n**Task:** Count lines of code in all JavaScript files\n\n| **PowerShell 🤡** | **gilchrist 🗿** |\n|-------------------|----------------|\n| ```Get-ChildItem -Recurse -Filter \"*.js\" \\|\u003cbr\u003eForEach-Object {\u003cbr\u003e  $lines = (Get-Content $_.FullName \\| Measure-Object -Line).Lines\u003cbr\u003e  Write-Output \"$($_.Name): $lines lines\"\u003cbr\u003e}``` | ```bash\u003cbr\u003egilchrist find . -name \"*.js\" -exec gilchrist wc -l {} +\u003cbr\u003e# or simply:\u003cbr\u003egilchrist wc -l $(gilchrist find . -name \"*.js\")\u003cbr\u003e``` |\n| **Complex looping logic** | **Simple command composition** |\n\n#### Scenario 2: Cleanup Old Files\n**Task:** Find and interactively delete .tmp files in subdirectories\n\n| **PowerShell 🤡** | **gilchrist 🗿** |\n|-------------------|----------------|\n| ```Get-ChildItem -Recurse -Filter \"*.tmp\" \\|\u003cbr\u003eForEach-Object {\u003cbr\u003e  $response = Read-Host \"Delete $($_.Name)? (y/n)\"\u003cbr\u003e  if ($response -eq 'y') {\u003cbr\u003e    Remove-Item $_.FullName\u003cbr\u003e    Write-Host \"Deleted $($_.Name)\"\u003cbr\u003e  }\u003cbr\u003e}``` | ```bash\u003cbr\u003egilchrist find . -name \"*.tmp\" -delete\u003cbr\u003e# or for manual confirmation:\u003cbr\u003egilchrist rm -i $(gilchrist find . -name \"*.tmp\")\u003cbr\u003e``` |\n| **Custom interactive loop** | **Built-in interactive mode** |\n\n#### Scenario 3: Analysis Pipeline\n**Task:** Find log files, count total lines, show file with most lines\n\n| **PowerShell 🤡** | **gilchrist 🗿** |\n|-------------------|----------------|\n| ```$logs = Get-ChildItem -Recurse -Filter \"*.log\"\u003cbr\u003e$totalLines = 0\u003cbr\u003e$maxLines = 0\u003cbr\u003e$maxFile = \"\"\u003cbr\u003eforeach ($log in $logs) {\u003cbr\u003e  $lines = (Get-Content $log \\| Measure-Object -Line).Lines\u003cbr\u003e  $totalLines += $lines\u003cbr\u003e  if ($lines -gt $maxLines) {\u003cbr\u003e    $maxLines = $lines\u003cbr\u003e    $maxFile = $log.Name\u003cbr\u003e  }\u003cbr\u003e}\u003cbr\u003eWrite-Host \"Total: $totalLines lines\"\u003cbr\u003eWrite-Host \"Largest: $maxFile ($maxLines lines)\"``` | ```bash\u003cbr\u003egilchrist find . -name \"*.log\" \\| xargs gilchrist wc -l\u003cbr\u003e# Output shows individual counts AND total\u003cbr\u003e# Largest file is easily visible in output\u003cbr\u003e``` |\n| **20+ lines of scripting** | **1 line with automatic totals** |\n\n### 🚀 Performance \u0026 Usability Comparison\n\n| **Aspect** | **Windows Native 🤡** | **gilchrist 🗿** |\n|------------|----------------------|----------------|\n| **Startup Time** | ~2-3 seconds (PowerShell load) | ~10ms (native binary) |\n| **Memory Usage** | ~50-100MB (PowerShell session) | ~2-5MB (Go runtime) |\n| **Learning Curve** | PowerShell object model + cmdlet syntax | Familiar Unix command syntax |\n| **Cross-Platform Knowledge** | Windows-specific | Transferable to Linux/macOS |\n| **Pipeline Efficiency** | Object-heavy processing | Text-based streaming |\n| **Error Handling** | Complex try-catch blocks | Built-in Unix-style error codes |\n\n### 💀 Windows Pain Points vs gilchrist Solutions\n\n| **Windows Problems 🤡** | **gilchrist Solutions 🗿** |\n|-------------------------|-------------------------|\n| Verbose cmdlets: `Get-ChildItem -Recurse -Filter` | Concise: `find . -name` |\n| Object pipeline complexity | Simple text-based pipes |\n| No interactive delete by default | Built-in `-i` flag |\n| Complex filtering with `Where-Object` | Direct pattern matching |\n| Inconsistent parameter naming | Standard Unix flag conventions |\n| Heavy memory usage for simple tasks | Lightweight native binaries |\n| Platform-specific knowledge | Universal Unix command knowledge |\n| Complex error handling required | Automatic error reporting |\n\n### 🏆 Why gilchrist Wins\n\n#### ✅ **Familiarity**\n- **Windows:** Learn PowerShell's unique object model and verbose syntax\n- **gilchrist:** Use the same commands you know from Linux/macOS/Unix\n\n#### ✅ **Efficiency**\n- **Windows:** `Get-ChildItem -Recurse -Filter \"*.txt\" | ForEach-Object { (Get-Content $_ | Measure-Object -Line).Lines }`\n- **gilchrist:** `find . -name \"*.txt\" | xargs wc -l`\n\n#### ✅ **Performance**\n- Native Go binaries vs PowerShell's .NET overhead\n- Text streaming vs object processing\n- Instant startup vs PowerShell initialization\n\n#### ✅ **Consistency**\n- Standard Unix behavior across all commands\n- Consistent flag naming (`-r`, `-i`, `-v`)\n- Predictable exit codes and error handling\n\n### 🎯 Bottom Line\n\n**Windows Native 🤡:** \"Let me write a 15-line PowerShell script with object manipulation, error handling, and hope it doesn't consume all my RAM...\"\n\n**gilchrist 🗿:** \"Three commands, five flags, job done. Next!\"\n\n**gilchrist gives you the Unix command-line power you're used to, while Windows native tools make you feel like you're learning a new programming language just to count files 📁**\n\n---\n\n### 🛠️ Advanced Usage Patterns\n\n### Command Chaining\n```cmd\n# Find large log files and count their lines\ngilchrist find . -name \"*.log\" -type f | xargs gilchrist wc -l\n\n# Count total source code files\ngilchrist find . -name \"*.go\" -o -name \"*.js\" | gilchrist wc -l\n\n# Clean and verify cleanup\ngilchrist find . -name \"*.tmp\" -delete \u0026\u0026 echo \"Cleanup complete\"\n```\n\n### Batch Operations\n```cmd\n# Process multiple directories\nfor /d %i in (*) do gilchrist wc -l \"%i\\*.txt\"\n\n# Conditional removal\ngilchrist find . -name \"*.backup\" -type f -exec gilchrist rm -i {} +\n\n# Statistics gathering\ngilchrist find . -type f | gilchrist wc -l \u003e file_count.txt\n```\n\n### Integration with Windows Commands\n```cmd\n# Combine with DIR\ndir /b *.txt | xargs gilchrist wc -l\n\n# Process command output\ntasklist | gilchrist find - -name \"*chrome*\"\n\n# Log analysis\ntype server.log | gilchrist wc -l\n```\n\n---\n\n### 🧪 Sample Data \u0026 Testing\n\n### Test Files Setup\n\n**Create test environment:**\n```cmd\nmkdir test_env\ncd test_env\necho Line 1 \u003e file1.txt\necho Line 2 \u003e\u003e file1.txt\necho Single line \u003e file2.txt\nmkdir subdir\necho Nested content \u003e subdir\\nested.txt\n```\n\n### Verification Commands\n```cmd\n# Test wc functionality\ngilchrist wc -l *.txt\n     2 file1.txt\n     1 file2.txt\n     3 total\n\n# Test find functionality  \ngilchrist find . -name \"*.txt\"\n.\\file1.txt\n.\\file2.txt\n.\\subdir\\nested.txt\n\n# Test rm functionality (be careful!)\ngilchrist rm -v file2.txt\nremoved 'file2.txt'\n```\n\n---\n\n### 📋 Tips and Best Practices\n\n### General Usage\n1. **Always test with `-v` (verbose)** when using `rm` command\n2. **Use `-i` (interactive)** for important file removals\n3. **Combine commands with pipes** for powerful workflows\n4. **Use `-h` flag** to get command-specific help\n5. **Test find patterns** before adding `-delete`\n\n### Performance Tips\n1. **Use `-maxdepth`** to limit find searches in large directories\n2. **Process large files with `wc`** instead of loading into memory\n3. **Batch operations** are more efficient than individual commands\n4. **Use specific patterns** rather than wildcards when possible\n\n### Safety Practices\n1. **Never use `rm -rf` without verification**\n2. **Test find commands without `-delete` first**\n3. **Use `-f` flag sparingly** - it suppresses important warnings\n4. **Keep backups** before bulk operations\n5. **Use `-mindepth 1`** to avoid operating on current directory\n\n---\n\n### 🙃 Why I Created This\n\nAs a developer who switches between Windows and Linux environments, I was tired of the cognitive overhead of remembering PowerShell's verbose cmdlet syntax for simple file operations. When I need to count lines in a file, I want to type `wc -l file.txt`, not `Get-Content file.txt | Measure-Object -Line`. \n\ngilchrist brings the familiar Unix command experience to Windows without requiring WSL, Git Bash, or other emulation layers. It's a single executable that provides the essential file utilities with the exact syntax and behavior you expect from Unix systems.\n\nInstead of learning PowerShell's object-oriented approach for basic file operations, you can use the same muscle memory and command patterns that work across Linux, macOS, and now Windows.\n\n---\n\n### ⌚ Development Stats\n\nApprox 30 min \n\n**Features Implemented:**\n- ✅ Complete argument parsing with flag package\n- ✅ Error handling and exit codes\n- ✅ Stdin/stdout pipe support  \n- ✅ Unicode-aware character counting\n- ✅ Glob to regex pattern conversion\n- ✅ Safe recursive directory operations\n- ✅ Interactive confirmation prompts\n- ✅ Comprehensive help system\n\n---\n\n### 📞 Contact\n\n📧 Email: pookielinuxuser@tutamail.com\n\n---\n\n### 🤔 Why This Name?\n\nInitially, I thought of naming it Goutils, but it felt a bit boring — I wanted something with a cooler vibe. That’s when the name Adam Gilchrist popped into my mind. So, I decided to rename Goutils into gilchrist — and that's how the I came up with this . \n\n## 📄 License\n\nLicensed under **GNU Affero General Public License** \n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eNeed help?\u003c/strong\u003e Run \u003ccode\u003egilchrist help\u003c/code\u003e or \u003ccode\u003egilchrist \u0026lt;command\u0026gt; -h\u003c/code\u003e for quick reference!\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  🕒 Last Updated: June 19, 2025\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigachad80%2Fgilchrist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgigachad80%2Fgilchrist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigachad80%2Fgilchrist/lists"}