{"id":18560774,"url":"https://github.com/eepp/preln","last_synced_at":"2025-11-01T12:30:32.844Z","repository":{"id":20051334,"uuid":"23319758","full_name":"eepp/preln","owner":"eepp","description":"prefix tree of symlinks creator","archived":false,"fork":false,"pushed_at":"2014-08-25T20:33:02.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-26T11:07:15.757Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/eepp.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":"2014-08-25T16:01:35.000Z","updated_at":"2014-08-25T20:11:32.000Z","dependencies_parsed_at":"2022-07-23T14:46:18.825Z","dependency_job_id":null,"html_url":"https://github.com/eepp/preln","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/eepp%2Fpreln","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eepp%2Fpreln/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eepp%2Fpreln/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eepp%2Fpreln/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eepp","download_url":"https://codeload.github.com/eepp/preln/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239287704,"owners_count":19613976,"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":[],"created_at":"2024-11-06T22:04:33.794Z","updated_at":"2025-11-01T12:30:32.674Z","avatar_url":"https://github.com/eepp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"preln\n=====\n\n**preln**, which stands for \u003cb\u003epre\u003c/b\u003efix tree **ln**, is a command line\nutility used to create a prefix path of one or more directories and one\nsymbolic link to categorize a file/directory according to its first\ncharacter(s). It can be used in conjunction with `find` to create a\nprefix tree of symbolic links.\n\n\ninstalling\n----------\n\nMake sure you have Python 3 and\n[setuptools](https://pypi.python.org/pypi/setuptools).\n\nClone using Git and run `setup.py`:\n\n    git clone https://github.com/eepp/preln.git\n    cd preln\n    sudo python3 setup.py install\n\n\nusing\n-----\n\nWith the following files in `/some/path`:\n\n    Alabama\n    Alaska\n    Arkansas\n    Delaware\n    Illinois\n    Indiana\n    Maine\n    Maryland\n    Missouri\n    Nebraska\n    New Hampshire\n    Ohio\n    Oregon\n    Utah\n    Wisconsin\n    Wyoming\n\nuse preln with `find` like this:\n\n    find /some/path -mindepth 1 -maxdepth 1 -exec preln -o /tmp/links '{}' \\;\n\nand `/tmp/links` will look like this:\n\n    A/\n      Alabama_ -\u003e /some/path/Alabama\n      Alaska_ -\u003e /some/path/Alaska\n      Arkansas_ -\u003e /some/path/Arkansas\n    D/\n      Delaware_ -\u003e /some/path/Delaware\n    I/\n      Illinois_ -\u003e /some/path/Illinois\n      Indiana_ -\u003e /some/path/Indiana\n    M/\n      Maine_ -\u003e /some/path/Maine\n      Maryland_ -\u003e /some/path/Maryland\n      Missouri_ -\u003e /some/path/Missouri\n    N/\n      Nebraska_ -\u003e /some/path/Nebraska\n      New Hampshire_ -\u003e /some/path/New Hampshire\n    O/\n      Ohio_ -\u003e /some/path/Ohio\n      Oregon_ -\u003e /some/path/Oregon\n    U/\n      Utah_ -\u003e /some/path/Utah\n    W/\n      Wisconsin_ -\u003e /some/path/Wisconsin\n      Wyoming_ -\u003e /some/path/Wyoming\n\nSymbolic links are always suffixed with `_` to avoid conflicts with\ndirectories: with source files\n\n    h\n    hello\n    hi\n\npreln needs to create an output directory `h` and a symbolic link `h`,\nwhich is impossible. Thus, `h` will be the directory containing\nsymbolic links, while `h/h_` being a symbolic link pointing to the\noriginal `h`:\n\n    h/\n      h_ -\u003e /some/path/h\n      hello_ -\u003e /some/path/hello\n      hi_ -\u003e /some/path/hi\n\npreln supports custom depths (the default depth is 1):\n\n    find /some/path -mindepth 1 -maxdepth 1 -exec preln -d 3 -o /tmp/links '{}' \\;\n\nwould create:\n\n    ...\n    M/\n      a/\n        i/\n          Maine_ -\u003e /some/path/Maine\n        r/\n          Maryland_ -\u003e /some/path/Maryland\n      i/\n        s/\n          Missouri_ -\u003e /some/path/Missouri\n    ...\n\npreln is case sensitive by default: `Grand` and `giraffe` sources\nwill lead to the creation of both `G` and `g` prefixes.\nCase sensitivity can be turned off using the `-i` option (applies to\nall depth levels). In this case, all created prefix directories will\nbe in lowercase.\n\nFor a complete list of options, do\n\n    preln --help\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feepp%2Fpreln","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feepp%2Fpreln","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feepp%2Fpreln/lists"}