{"id":22287426,"url":"https://github.com/fooker/mmv","last_synced_at":"2026-05-06T07:36:49.629Z","repository":{"id":138425734,"uuid":"260792026","full_name":"fooker/mmv","owner":"fooker","description":"linux mass media rename / mover","archived":false,"fork":false,"pushed_at":"2020-05-05T19:56:55.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-30T18:29:23.139Z","etag":null,"topics":["files","library-management","linux","multimedia","renaming"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/fooker.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-05-02T23:15:08.000Z","updated_at":"2020-05-05T19:56:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"e89a0a6f-799f-413c-ac1d-3864ebef2c1c","html_url":"https://github.com/fooker/mmv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fmmv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fmmv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fmmv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fooker%2Fmmv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fooker","download_url":"https://codeload.github.com/fooker/mmv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245543197,"owners_count":20632637,"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":["files","library-management","linux","multimedia","renaming"],"created_at":"2024-12-03T16:59:59.234Z","updated_at":"2026-05-06T07:36:49.575Z","avatar_url":"https://github.com/fooker.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"`mmv` - Linux mass file rename / mover\n\nmmv is a utility to move huge masses of files while selectively renaming and deleting these.\nIt leverages the power of `vim` allowing to use all your editor kung-fu for file renaming.\n\n## Concept\nmmv uses a stateful workspace concept.\nIt keeps track of the files in the workspace and the assigned actions.\nThe user can edit the assigned action multiple times and inspect the result before execution the set of changes in the workspace.\n\nThe list of all known files in the workspace is stored in a file inside the workspace line-by-line (the sources file).\nThe actions assigned to these files are stored in a second file which can be edited by the user (the targets file).\nThe lines in these files match up to define the change set.\nI.e. the first line in the source file and the first line in the target file will define the first change - and so on.\nTherefore the number of lines mus be equal in both files to define a valid change set.\nIf the change set is not valid, it can not be updated or executed.\n\n## Action Format\nThe target file contins the actions line by line.\nEach action must be one of the follow three types:\n\n### Move\nThe file is moved to this location.\nThe location must be a valid file name and will be interpreted as path relative to the target given during execution.\n\n### Delete\nThe file will be deleted.\nAn empty line (containing only zero or more whitespaces) will mark the file for deletion\n\n### Ignore\nThe file will be ignored.\nA line must start wih one or more whitespaces.\nThe remaining line will be used as comment.\n\n\n## Workflow\n\n* Init the mmv workspace in the current directory.\n  ```\n  mmv init\n  ```\n\n* Open the editor to modify actions \n  ```\n  mmv edit\n  ```\n\n* Inspect the workspace status\n  ```\n  mmv status\n  ``` \n\n* Edit again\n  ```\n  mmv edit\n  ```\n  \n* Exit the changes\n  ```\n  mmv execute\n  ```\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooker%2Fmmv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffooker%2Fmmv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffooker%2Fmmv/lists"}