{"id":27129828,"url":"https://github.com/gadiguibou/stdrename","last_synced_at":"2025-07-29T00:35:27.402Z","repository":{"id":57668608,"uuid":"278418801","full_name":"Gadiguibou/stdrename","owner":"Gadiguibou","description":"'stdrename' is a small command line utility to rename all files in a folder according to a specified naming convention (camelCase, snake_case, kebab-case, etc.).","archived":false,"fork":false,"pushed_at":"2023-02-27T13:56:54.000Z","size":61,"stargazers_count":115,"open_issues_count":12,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-24T07:51:12.687Z","etag":null,"topics":["camelcase","command-line-tool","hacktoberfest","kebab-case","naming-conventions","rename-files","rename-script","renamer-utility","renaming-directories","snake-case","standardizer"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gadiguibou.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":"2020-07-09T16:41:41.000Z","updated_at":"2025-07-23T03:36:57.000Z","dependencies_parsed_at":"2025-05-20T12:06:59.347Z","dependency_job_id":"5cd0c500-0757-4e4c-a630-dbd6d5121647","html_url":"https://github.com/Gadiguibou/stdrename","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/Gadiguibou/stdrename","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gadiguibou%2Fstdrename","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gadiguibou%2Fstdrename/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gadiguibou%2Fstdrename/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gadiguibou%2Fstdrename/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gadiguibou","download_url":"https://codeload.github.com/Gadiguibou/stdrename/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gadiguibou%2Fstdrename/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267610477,"owners_count":24115438,"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-28T02:00:09.689Z","response_time":68,"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":["camelcase","command-line-tool","hacktoberfest","kebab-case","naming-conventions","rename-files","rename-script","renamer-utility","renaming-directories","snake-case","standardizer"],"created_at":"2025-04-07T19:58:12.693Z","updated_at":"2025-07-29T00:35:27.376Z","avatar_url":"https://github.com/Gadiguibou.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stdrename\n\n[![Build Status](https://travis-ci.com/Gadiguibou/stdrename.svg?branch=master)](https://travis-ci.com/Gadiguibou/stdrename)\n\nThis small utility is designed to rename all files in a folder according to a specified naming convention (camelCase, snake_case, kebab-case, etc.).\n\nIt currently supports the following naming conventions:\n\n- camelCase\n- kebab-case\n- lower case\n- PascalCase\n- SCREAMING_SNAKE_CASE\n- Sentence case\n- snake_case\n- Title Case\n- Train-Case\n\n![screenshot-of-stdrename](https://user-images.githubusercontent.com/34945306/90803472-c85b3f00-e2e6-11ea-8552-9e14ac306522.png)\n\n## Installation\n\n### Manual\n\n1. Download the [latest binary executable release](https://github.com/Gadiguibou/stdrename/releases) supported by your OS.\n\n    For most Linux distributions, download `stdrename-x86_64-unknown-linux-gnu`.\n    \n    For Windows, download `stdrename.exe`.\n    \n    No macOS binary is available yet, but `stdrename` can still be installed using [Cargo](#cargo).\n\n2. Add it to your `PATH`.\n\n    On Linux and MacOS, this is achieved by executing the following command in your terminal after downloading the file.\n\n    ```bash\n    chmod +x ~/Downloads/stdrename \u0026\u0026 sudo mv ~/Downloads/stdrename /usr/local/bin\n    ```\n\n    On Windows, you can move the file to a new folder such as \"C:\\Users\\\\*YourName*\\\\bin\" and then add the folder to your `PATH` using the instructions [here](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/).\n\n### Cargo\n\nIf you have [cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) installed you can install [`stdrename`](https://crates.io/crates/stdrename) with:\n\n```bash\ncargo install stdrename\n```\n\nThe executable file can then be found in `$HOME/.cargo/bin/stdrename`.\n\nOn Linux and MacOS to make sure `$HOME/.cargo/bin` is in your `$PATH`  add the following line at the end of  `.bashrc` (in your home directory):\n\n```bash\nexport PATH=\"$HOME/.cargo/bin:$PATH\"\n```\n\n## Usage\n\nYou must specify the naming convention you want to use with the appropriate flag. For example, this will rename all files in the current directory using the kebab-case naming convention.\n\n```bash\nstdrename -k\n```\n\nHere is the full list of naming convention flags that can be used:\n\n| Short | Long          | Example                    |\n| ----- | ------------- | -------------------------- |\n| `-c`  | `--camel`     | `camelCase.txt`            |\n| `-k`  | `--kebab`     | `kebab-case.txt`           |\n| `-l`  | `--lower`     | `lower case.txt`           |\n| `-p`  | `--pascal`    | `PascalCase.txt`           |\n|       | `--screaming` | `SCREAMING_SNAKE_CASE.txt` |\n| `-S`  | `--sentence`  | `Sentence case.txt`        |\n| `-s`  | `--snake`     | `snake_case.txt`           |\n| `-T`  | `--title`     | `Title Case.txt`           |\n| `-t`  | `--train`     | `Train-Case.txt`           |\n\n### Specifying a different folder to parse\n\nYou can also specify a different folder to parse with a second argument e.g.:\n\n```bash\nstdrename -k ~/Pictures\n```\n\n### Renaming files in subfolders as well\n\nTo rename recursively, use the flag `-r` or `--recursive` e.g.:\n\n```bash\nstdrename -kr ~/Pictures\n```\n\n### Renaming directories as well\n\nTo rename directories as well, use the flag `-D` or `--dir` e.g.:\n\n```bash\nstdrename -kD ~/Pictures\n```\n\n### Ignoring files and subdirectories\n\nBy default, patterns in `.gitignore` files, global gitignore files and git exclude files will be ignored as well if the directory is a git repository.\n\nYou may also add a `.ignore` file with patterns to ignore in the file's directory and its subdirectories.\n\nThis file may use any of the glob patterns that can be used in a `.gitignore` file. It is functionally the same, just with a different name e.g.:\n\nAdding the following line in a new .ignore file in the same directory as stdrename will ignore all files with the extension `.py` and all files in the subdirectory `./target/` when renaming.\n\n```ignore\n# ./.ignore\n# ignore all files ending with .py\n# ignore all files in /target and its subdirectories\n\n*.py\n/target\n```\n\nYou may even add a second `.ignore` file in a subdirectory e.g.:\n\n```ignore\n# ./subdir1/.ignore\n# match .py files despite previous instructions\n# ignore .txt files in this directory and all subdirectories\n\n!*.py\n*.txt\n```\n\nAll files in that directory and all sub directories will then reinclude .py files and ignore .txt files.\n\nIf you'd like to use global ignore patterns specific to stdrename, you can do so by creating an \"`ignore`\" (notice this one does not start with a \".\") in the following location:\n\nOn Windows: `%USERPROFILE%\\AppData\\Local\\stdrename\\\"`\n\nOn Unix based systems (e.g. MacOS or GNU Linux):\n\n`$HOME/.config/stdrename/`\n\nThis file follows the same pattern matching principles as other `.gitignore` or `.ignore` files and has a lower precedence than all other sources of ignore rules.\n\n### `--text` mode\n\nText mode allows for either piping through stdin, e.g.:\n\n```bash\necho 'Hello World' | stdrename --text -k\n```\n\nor interactive use, e.g.:\n\n```bash\nstdrename --text -s\nreallyCreativeProgramName.js\nreally_creative_program_name.js\nPYTHONISTA_BANANA.py\npythonista_banana.py\nThis is really just a normal sentence\nthis_is_really_just_a_normal_sentence\n```\n\nEither way, the program terminates and stops reading as soon as it encounters an empty line.\n\nTo suppress the exit message (if piping stdout to another file for example) add the `-q` or `--quiet` flag.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgadiguibou%2Fstdrename","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgadiguibou%2Fstdrename","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgadiguibou%2Fstdrename/lists"}