{"id":20806197,"url":"https://github.com/anhsirk0/file-arranger","last_synced_at":"2025-07-29T12:33:35.471Z","repository":{"id":48661588,"uuid":"359526681","full_name":"anhsirk0/file-arranger","owner":"anhsirk0","description":"Simple \u0026 capable Directory arranger/cleaner","archived":false,"fork":false,"pushed_at":"2022-08-20T11:39:11.000Z","size":2252,"stargazers_count":58,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-07T04:34:01.818Z","etag":null,"topics":["arranger","bsd","command-line","command-line-tool","linux","perl","terminal"],"latest_commit_sha":null,"homepage":"","language":"Perl","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/anhsirk0.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}},"created_at":"2021-04-19T16:29:32.000Z","updated_at":"2025-03-21T23:41:25.000Z","dependencies_parsed_at":"2022-09-13T16:01:13.264Z","dependency_job_id":null,"html_url":"https://github.com/anhsirk0/file-arranger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anhsirk0/file-arranger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhsirk0%2Ffile-arranger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhsirk0%2Ffile-arranger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhsirk0%2Ffile-arranger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhsirk0%2Ffile-arranger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anhsirk0","download_url":"https://codeload.github.com/anhsirk0/file-arranger/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anhsirk0%2Ffile-arranger/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267686528,"owners_count":24127716,"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-29T02:00:12.549Z","response_time":2574,"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":["arranger","bsd","command-line","command-line-tool","linux","perl","terminal"],"created_at":"2024-11-17T19:18:40.023Z","updated_at":"2025-07-29T12:33:35.450Z","avatar_url":"https://github.com/anhsirk0.png","language":"Perl","readme":"\u003ch1 align=\"center\"\u003e\u003ccode\u003earng\u003c/code\u003e\u003c/h1\u003e\n\u003cp align=\"center\"\u003eSimple \u0026 \u003cstrong\u003eCapable\u003c/strong\u003e files arranger (previously \u003ccode\u003earranger\u003c/code\u003e)\u003c/p\u003e\n\n## About\nArng is a CLI file arng written in Perl   \nIt cleans up your Directory by moving files to their corresponding Directory by their file extension  \njpg, png, jpeg, webp -\u003e Images  \nmp4, mkv, avi, flv -\u003e Videos  \nand other common filetype extensions  \n\n## Features\nArng can\n - control maxdepth when arranging\n - delete empty Directories\n - save logs of what exactly happened\n - revert the move using logfile\n - move only specific files by provided file extensions \u0026 Directory\n - arrange more than one Directory\n - move unrecognised filetypes to 'Other' Directory\n - arrange files by patterns\n\n## Installation\nIts just a perl script\ndownload it make it executable and put somewhere in your $PATH\n\n## Via install script\n```bash\nbash -c \"$(curl https://raw.githubusercontent.com/anhsirk0/file-arranger/master/install.sh)\"\n```\n## Manually\n\nwith wget\n``` bash\nwget https://raw.githubusercontent.com/anhsirk0/file-arranger/master/arng.pl -O arng\n```\n### or\nwith curl\n``` bash\ncurl https://raw.githubusercontent.com/anhsirk0/file-arranger/master/arng.pl --output arng\n```\nmaking it executable\n```bash\nchmod +x arng\n```\ncopying it to $PATH (~/.local/bin/ , this step is optional)\n```bash\ncp arng ~/.local/bin/\n```\n\n## Usage\n\n```bash\narng [dirs] [options]\n```\n### dry-run\n\n```bash\n$ arng -dry\nfiles2.mp4 -\u003e Videos/files2.mp4\nfiles2.mp3 -\u003e Music/files2.mp3\nfiles1.mp4 -\u003e Videos/files1.mp4\nfiles2.pl -\u003e Other/files2.pl\nfiles1.mp3 -\u003e Music/files1.mp3\nfiles1.pdf -\u003e Documents/files1.pdf\nfiles1.pl -\u003e Other/files1.pl\nfiles2.pdf -\u003e Documents/files2.pdf\n0 Files moved\n```\n\n### adding verbose\n```bash\n$ arng -v\nfiles2.mp4 -\u003e Videos/files2.mp4\nfiles2.mp3 -\u003e Music/files2.mp3\nfiles1.mp4 -\u003e Videos/files1.mp4\nfiles2.pl -\u003e Other/files2.pl\nfiles1.mp3 -\u003e Music/files1.mp3\nfiles1.pdf -\u003e Documents/files1.pdf\nfiles1.pl -\u003e Other/files1.pl\nfiles2.pdf -\u003e Documents/files2.pdf\n8 Files moved\n```\n\n### moving files by extensions to provided dir\n```bash\n$ arng -ext sh zsh fish -dir shell -v\nscript.sh -\u003e shell/script.sh\nscript.zsh -\u003e shell/script.zsh\nscript.fish -\u003e shell/script.fish\n3 Files moved\n```\n\n### reversing the move via a logfile\nlogfiles are stored in `~/.config/arng/logs`\n```bash\n$ arng -rev \"~/.config/arng/logs/logfile1234\"\n8 files moved\n```\n\n### not saving logs and not moving unrecognised filetypes to 'Other'\n```bash\n$ arng -nl -nu\n8 files moved\n```\nor \n```bash\n$ arng --no-log --no-unknown\n8 files moved\n```\n\n### deleting empty directories\n```bash\n$ arng --delete-empty --no-arrange\n2 Directory deleted\n0 files moved\n```\nor\n```bash\n$ arng -de -na\n2 Directory deleted\n0 files moved\n```\n\n### name/iname\n```bash\n$ arng -iname \"episode*\" -dir \"Episodes\" -v\nepisode_1.mp4 -\u003e Episodes/episode_1.mp4\nEPISODE_3.mp4 -\u003e Episodes/EPISODE_3.mp4\nepisode_2.mp4 -\u003e Episodes/episode_2.mp4\nEPISODE_4.mp4 -\u003e Episodes/EPISODE_4.mp4\n4 Files moved\n```\n\n### maxdepth\n```bash\n$ tree\n.\n└── dir\n    ├── subdir1\n    │   ├── subdir1_file.mp3\n    │   ├── subdir1_file.mp4\n    │   └── subdir1_file.pdf\n    └── subdir2\n        ├── subdir2_file.mp3\n        ├── subdir2_file.mp4\n        └── subdir2_file.pdf\n\n3 directories, 6 files\n```\n\n```bash\n$ arng\n0 files moved\n```\n```bash\n$ arng --maxdepth 3 -v\ndir/subdir2/subdir2_file.mp4 -\u003e Videos/subdir2_file.mp4\ndir/subdir2/subdir2_file.pdf -\u003e Documents/subdir2_file.pdf\ndir/subdir2/subdir2_file.mp3 -\u003e Music/subdir2_file.mp3\ndir/subdir1/subdir1_file.mp4 -\u003e Videos/subdir1_file.mp4\ndir/subdir1/subdir1_file.pdf -\u003e Documents/subdir1_file.pdf\ndir/subdir1/subdir1_file.mp3 -\u003e Music/subdir1_file.mp3\n6 Files moved\n```\n## Tweaking arng via config file\nyou need to create a file ~/.config/arng/arng.conf\n\nyou can download the sample config file and move it into the config Directory\n\n```bash\nwget https://raw.githubusercontent.com/anhsirk0/file-arranger/master/arng.conf\n```\n### or\nwith curl\n``` bash\ncurl https://raw.githubusercontent.com/anhsirk0/file-arranger/master/arng.conf --output arng.conf\n```\n\n### move to config dir\n```bash\nmv arng.conf ~/.config/arng/arng.conf\n```\n\n## About config file\n - everything should be space separated (don't worry about extra/trailing spaces)\n - first word of line would be Directory name rest would be file extensions associated with that Directory\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanhsirk0%2Ffile-arranger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanhsirk0%2Ffile-arranger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanhsirk0%2Ffile-arranger/lists"}