{"id":50351091,"url":"https://github.com/spectra010s/junks","last_synced_at":"2026-05-29T21:01:21.108Z","repository":{"id":359353825,"uuid":"1245650937","full_name":"Spectra010s/junks","owner":"Spectra010s","description":"A trash bin CLI for Linux. Because rm doesn't forgive.","archived":false,"fork":false,"pushed_at":"2026-05-21T13:13:05.000Z","size":5,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-21T21:58:58.757Z","etag":null,"topics":["bash","cli","devtools","linux","rm","shell","terminal","termux","trash"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/Spectra010s.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-21T12:27:02.000Z","updated_at":"2026-05-21T15:53:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Spectra010s/junks","commit_stats":null,"previous_names":["spectra010s/junks"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Spectra010s/junks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spectra010s%2Fjunks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spectra010s%2Fjunks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spectra010s%2Fjunks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spectra010s%2Fjunks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Spectra010s","download_url":"https://codeload.github.com/Spectra010s/junks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spectra010s%2Fjunks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33670211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["bash","cli","devtools","linux","rm","shell","terminal","termux","trash"],"created_at":"2026-05-29T21:01:20.190Z","updated_at":"2026-05-29T21:01:21.095Z","avatar_url":"https://github.com/Spectra010s.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# junks\n\nA lightweight trash bin CLI for Linux. Because `rm` doesn't forgive.\n\n```\n$ junks report.pdf notes.txt old_build/\njunks: 'report.pdf' moved to trash  [id: 1716300000-4821]\njunks: 'notes.txt' moved to trash   [id: 1716300000-9134]\njunks: 'old_build' moved to trash   [id: 1716300000-3307]\n\n$ junks list\nTrash (~/.junks)  [3 item(s)]\n──────────────────────────────────────────────────\n📄  report.pdf                    2024-05-21 14:32\n    240K        ← /home/user/report.pdf\n\n📁  old_build                     2024-05-21 14:32\n    47 items    ← /home/user/projects/old_build\n\n$ junks restore report.pdf\njunks: 'report.pdf' restored to '/home/user/report.pdf'\n```\n\n## Why\n\nLinux has no recycle bin. `rm` is permanent. `junks` gives you a safety net — move files and directories to a local trash bin, restore them when you change your mind, or purge when you're sure.\n\nThere is a community standard — `trash-cli` — which implements the FreeDesktop Trash Spec and integrates with desktop file managers like Nautilus and Thunar. If you need that, use it.\n\n`junks` is for everywhere else: servers, headless systems, and Termux on Android. No desktop dependencies. No spec overhead. Just bash, anywhere bash runs.\n\nBuilt and maintained from Termux on Android.\n\n## Install\n\n```bash\ngit clone https://github.com/Spectra010s/junks.git\ncd junks\nchmod +x junks\nsudo cp junks /usr/local/bin/\n```\n\n**Termux:**\n```bash\ncp junks $PREFIX/bin/\n```\n\n## Usage\n\n```\njunks \u003cfile|dir\u003e [...]        Move one or more files/dirs to trash\njunks restore \u003cname\u003e          Restore item to its original location\n  --rename                    Auto-rename if restore path already exists\n  --overwrite                 Overwrite if restore path already exists\n  --to \u003cdir\u003e                  Restore into a specific directory\njunks list [--plain]          List all items in the trash\njunks purge                   Permanently delete all trash (confirms first)\njunks purge \u003cname\u003e            Permanently delete a specific item\njunks --version               Show version\njunks --help                  Show help\n```\n\n## Examples\n\n```bash\n# Trash multiple targets at once\njunks *.log old_folder/\n\n# Restore to a different location\njunks restore config.json --to ~/backup\n\n# Restore even if name already exists\njunks restore config.json --rename\n\n# Plain ASCII list (safe for narrow/old terminals)\njunks list --plain\n\n# Purge a specific item\njunks purge old_folder\n```\n\n## How it works\n\n- Trash lives at `~/.junks/`\n- Each item gets a unique ID (`timestamp-random`) to avoid collisions\n- Metadata (`~/.junks/.meta/\u003cid\u003e`) stores original path and trash timestamp\n- `restore` always puts things back where they came from\n- `list` shows trashed-at time and original path for every item\n- `--plain` mode auto-activates on non-UTF-8 terminals\n\n## Custom trash location\n\n```bash\nexport JUNKS_HOME=/path/to/custom/trash\n```\n\nAdd to `~/.bashrc` or `~/.profile` to persist.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspectra010s%2Fjunks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspectra010s%2Fjunks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspectra010s%2Fjunks/lists"}