{"id":16852530,"url":"https://github.com/2called-chaos/dle","last_synced_at":"2025-04-11T07:04:01.402Z","repository":{"id":16345471,"uuid":"19095284","full_name":"2called-chaos/dle","owner":"2called-chaos","description":"Directory List Edit – Edit file structures in your favorite editor!","archived":false,"fork":false,"pushed_at":"2015-04-09T22:30:28.000Z","size":220,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-03T17:55:32.061Z","etag":null,"topics":["cli","command-line","dle","filemanager","filesystem","ruby","utility"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/2called-chaos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-24T04:06:46.000Z","updated_at":"2022-11-28T16:18:11.000Z","dependencies_parsed_at":"2022-08-03T13:00:21.814Z","dependency_job_id":null,"html_url":"https://github.com/2called-chaos/dle","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2called-chaos%2Fdle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2called-chaos%2Fdle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2called-chaos%2Fdle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2called-chaos%2Fdle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2called-chaos","download_url":"https://codeload.github.com/2called-chaos/dle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239570632,"owners_count":19661125,"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":["cli","command-line","dle","filemanager","filesystem","ruby","utility"],"created_at":"2024-10-13T13:47:35.642Z","updated_at":"2025-02-18T23:31:27.501Z","avatar_url":"https://github.com/2called-chaos.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DLE\n\n**Directory List Edit – Edit file structures in your favorite editor!**\nYou can copy, move, rename, chmod, chown or remove individual files or directories with your favorite text editor.\n\n**BETA product, use at your own risk, use `--simulate` to be sure, always have a backup!**\n\n[![YouTube](http://img.youtube.com/vi/-xfnx3VQvNQ/mqdefault.jpg)](https://www.youtube.com/watch?v=-xfnx3VQvNQ)\n**[▶ See it in action](https://www.youtube.com/watch?v=-xfnx3VQvNQ)**\n\n## Requirements\n\nYou will need a UNIX system with a working Ruby (\u003e= 1.9.3) installation, sorry Windozer!\n\n## Installation\n\nSimple as:\n\n    $ gem install dle\n\nYou may also want to define your favorite editor by setting this enviromental variable (in your profile or bashrc):\n\n    export DLE_EDITOR=\"subl -w\"\n\nNote that you need a blocking call to the editor (for GUI editors). Sublime and Textmate both accept `-w` or `--wait`.\n\n## Usage\n\nTo get a list of available options invoke DLE with the `--help` or `-h` option:\n\n    Usage: dle [options] base_directory\n    # Application options\n        -d, --dotfiles                   Include dotfiles (unix invisible)\n        -r, --skip-review                Skip review changes before applying\n        -s, --simulate                   Don't apply changes, show commands instead\n        -f, --file DLFILE                Use input file (be careful)\n        -o, --only pattern               files, dirs or regexp (without delimiters)\n                                           e.g.: dle ~/Movies -o \"(mov|mkv|avi)$\"\n        -a, --apply NAMED,FILTERS        Filter collection with saved filters\n        -q, --query                      Filter collection with ruby code\n        -e, --edit FILTER                Edit/create filter scripts\n\n    # General options\n        -m, --monochrome                 Don't colorize output\n        -h, --help                       Shows this help\n        -v, --version                    Shows version and other info\n        -z                               Do not check for updates on GitHub (with -v/--version)\n            --console                    Start console to play around with the collection (requires pry)\n\n\n\n\nChange into a directory you want to work with and invoke DLE:\n\n    dle .\n    dle ~/some_path\n\nYour editor will open with a list of your directory structure which you can edit accordingly to these rules:\n\n  * If you remove a line we just don't care!\n  * If you add a line we just don't care!\n  * If you change a path we will \"mkdir -p\" the destination and move the file/dir\n  * If you change the owner we will \"chown\" the file/dir\n  * If you change the mode we will \"chmod\" the file/dir\n  * If you change the mode to \"cp\" and modify the path we will copy instead of moving/renaming\n  * If you change the mode to \"del\" we will \"rm\" the file\n  * If you change the mode to \"delr\" we will \"rm\" the file or directory\n  * If you change the mode to \"delf\" or \"delrf\" we will \"rm -f\" the file or directory\n  * We will apply changes in this order (inside-out):\n    * Ownership\n    * Permissions\n    * Rename/Move\n    * Copy\n    * Delete\n\n\n### Filters\n\nYou can easily filter your movies with Ruby. It's not hard, just look at these examples.\n\n```ruby\n# Filter by name, for regex see http://rubular.com\n@fs.index.reject! {|inode, node| node.basename =~ /whatever/i }\n\n# Only big files\n@fs.index.select! {|inode, node| node.file? \u0026\u0026 node.size \u003e 1024 * 1024 * 10 }\n\n# Sort by size\n@fs.index.replace Hash[@fs.index.sort_by{|inode, node| node.size }.reverse]\n```\n\n\n## Caveats\n\nDLE relies on inode values, do not use with hardlinks! This may lead to unexpected file operations or data loss!\n\n## Contributing\n\n1. Fork it ( http://github.com/2called-chaos/dle/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2called-chaos%2Fdle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2called-chaos%2Fdle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2called-chaos%2Fdle/lists"}