{"id":22007436,"url":"https://github.com/joshpetit/mvpls","last_synced_at":"2025-07-23T11:05:18.296Z","repository":{"id":122536697,"uuid":"323753186","full_name":"joshpetit/mvpls","owner":"joshpetit","description":"Move Please! Recursively move, copy, or remove all files matching a regex pattern.","archived":false,"fork":false,"pushed_at":"2021-01-19T20:45:24.000Z","size":4255,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-07T13:40:56.491Z","etag":null,"topics":["bus","don-t","driver","forget","regex","thank","the","to"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joshpetit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-12-22T23:13:34.000Z","updated_at":"2024-06-19T12:56:46.714Z","dependencies_parsed_at":"2024-06-19T12:56:45.757Z","dependency_job_id":"06ffd022-ef3a-4935-b71c-76136a67916b","html_url":"https://github.com/joshpetit/mvpls","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/joshpetit/mvpls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshpetit%2Fmvpls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshpetit%2Fmvpls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshpetit%2Fmvpls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshpetit%2Fmvpls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshpetit","download_url":"https://codeload.github.com/joshpetit/mvpls/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshpetit%2Fmvpls/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266665809,"owners_count":23964974,"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":["bus","don-t","driver","forget","regex","thank","the","to"],"created_at":"2024-11-30T01:26:42.558Z","updated_at":"2025-07-23T11:05:18.266Z","avatar_url":"https://github.com/joshpetit.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mvpls\nMvpls (move please) is a simple utility tool written in Go to allow for the recursive moving, copying, or removing of files and flattening of file trees with regex.\n\n![](assets/mvpls.gif)\n\nIn this example, every pdf file within my books directory and its subdirectories is moved to a seperate folder.\n\nWhy are my pdfs executable? Idk calibre did that to them for some reason.\n\nIt's really simple, pass in a -r \"REGEX\" flag and the directories you would like to search within.\n```sh\nmvpls -r \".*\\.png\" . moveLocation/\n```\nmoves all pngs extensions from the current directory and its subdirectories to the folder `moveLocation`.\n\nto copy, pass in the -c flag, remove pass in the --remove flag.\n\nit's still in development lol. Try at your own risk I suppose. Should work though... spent a few hours on it...\n\nYou could say, can't we easily do this by piping a few [standard commands](https://superuser.com/a/1041895/1225558)?\nAnd you'd be right. But I wanted to make this anyway :P. Also  Go is fun to code in so I can't be wrong there.\n\nIt also works just like the POSIX `mv` command so can move files like regular when no flag is passed. Do I get a POSIX compliant badge??\n\n## Why GO?\nThe correct question is why not Go? I mostly chose Go because it looks fun and is cross platform. \nThe two most import parts in software development after the name.\n\n### Pressing features\n- Key feature allowing you to thank mvpls if it succeeds.\n- Cache operations to allow for a possible revert flag\n- Obviously add the ability to copy or remove.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshpetit%2Fmvpls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshpetit%2Fmvpls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshpetit%2Fmvpls/lists"}