{"id":15687279,"url":"https://github.com/passcod/ct","last_synced_at":"2025-05-07T19:40:53.742Z","repository":{"id":139959773,"uuid":"227071923","full_name":"passcod/ct","owner":"passcod","description":"Cats files, lists dirs","archived":false,"fork":false,"pushed_at":"2020-06-02T23:45:54.000Z","size":18,"stargazers_count":9,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-31T13:27:27.673Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/passcod.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}},"created_at":"2019-12-10T08:56:29.000Z","updated_at":"2020-12-30T15:44:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"cd54fffd-7bd5-4884-bbb3-bdd6fc191728","html_url":"https://github.com/passcod/ct","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fct","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fct/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fct/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fct/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passcod","download_url":"https://codeload.github.com/passcod/ct/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252945142,"owners_count":21829544,"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-10-03T17:46:29.348Z","updated_at":"2025-05-07T19:40:53.712Z","avatar_url":"https://github.com/passcod.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# $ ct\n\n[![Release version](https://flat.badgen.net/github/release/passcod/ct/stable)](https://github.com/passcod/ct/releases)\n[![License: MIT](https://flat.badgen.net/github/license/passcod/ct)](./LICENSE)\n[![Build status](https://flat.badgen.net/travis/passcod/ct/main)](https://travis-ci.com/passcod/ct)\n![MSRV: none aka latest stable](https://flat.badgen.net/badge/MSRV/latest%20stable/purple)\n![MSRV policy: bump is non-breaking](https://flat.badgen.net/badge/MSRV%20policy/non-breaking/orange)\n\n_Cats files, lists dirs._\n\nTiny tool that lists directories and prints files. Replacement for cat and ls\nall in one. Uses [exa] to list files, and accepts all its options.\n\n[exa]: https://the.exa.website\n\n## Install\n\nPre-built binaries are available [on the Github Releases tab](https://github.com/passcod/ct/releases).\n\nFrom source:\n\n```bash\n$ cargo install --force --git https://github.com/passcod/ct --branch main\n```\n\nOr clone and build with `$ cargo build --release` then place in your $PATH.\n\n## Usage\n\nUse it like you would cat and ls (or rather [exa]), except you never again have\nto switch which based on what the target is:\n\n```bash\n$ ct file\nall of the\nfile contents\n\n$ ct dir\na-file  a-folder  an-archive.tar.xz  etc-etc-etc\n```\n\nPassed nothing, it lists the working directory:\n\n```bash\n$ ct\nbin  README.md  target  Cargo.lock  Cargo.toml  src\n```\n\nPassed multiple arguments, it acts on each in turn:\n\n```bash\n$ ct file dir\n=\u003e file \u003c=\nall of the\nfile contents\n\n=\u003e dir \u003c=\na-file  a-folder  an-archive.tar.xz  etc-etc-etc\n```\n\nGiven [exa] options, it formats listings:\n\n```bash\n$ ct -l\ndrwxr-xr-x    - passcod 10 Dec 21:33 bin\n.rw-r--r--  23k passcod 10 Dec 21:27 Cargo.lock\n.rw-r--r--  558 passcod 10 Dec 21:21 Cargo.toml\n.rw-r--r-- 9.0k passcod 10 Dec 21:19 LICENSE\n.rw-r--r--  14k passcod 10 Dec 21:38 README.md\ndrwxr-xr-x    - passcod 10 Dec 21:14 src\ndrwxr-xr-x    - passcod 10 Dec 21:35 target\n```\n\nIf it encounters errors, it will attempt to skip and continue as best it can:\n\n```bash\n$ ct forbidden allowed /dev/sda /proc/filesystems\nfailed to open file: forbidden\nPermission denied (os error 13)\n\n=\u003e allowed \u003c=\nyes you can look here\n\nnot a dir or regular file: /dev/sda\n\n=\u003e /proc/filesystem \u003c=\nnodev   sysfs\nnodev   tmpfs\nnodev   bdev\nnodev   proc\nnodev   cgroup\n...\n```\n\nIf something fails, it will exit with the last non-zero code it got.\n\n## Windows support?\n\n[Unfortunately not yet](https://github.com/ogham/exa/issues/32).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasscod%2Fct","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpasscod%2Fct","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasscod%2Fct/lists"}