{"id":18605629,"url":"https://github.com/piotrpsz/dirscanner","last_synced_at":"2025-05-17T09:42:30.220Z","repository":{"id":208412434,"uuid":"718547321","full_name":"piotrpsz/dirscanner","owner":"piotrpsz","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-26T11:49:10.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-18T02:14:58.238Z","etag":null,"topics":["cpp","cpp20","tbb"],"latest_commit_sha":null,"homepage":"","language":"C++","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/piotrpsz.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}},"created_at":"2023-11-14T10:05:40.000Z","updated_at":"2023-11-21T10:20:53.000Z","dependencies_parsed_at":"2023-11-26T12:39:32.803Z","dependency_job_id":null,"html_url":"https://github.com/piotrpsz/dirscanner","commit_stats":null,"previous_names":["piotrpsz/dirscanner"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrpsz%2Fdirscanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrpsz%2Fdirscanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrpsz%2Fdirscanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrpsz%2Fdirscanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrpsz","download_url":"https://codeload.github.com/piotrpsz/dirscanner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254595499,"owners_count":22097578,"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":["cpp","cpp20","tbb"],"created_at":"2024-11-07T02:22:23.430Z","updated_at":"2025-05-17T09:42:29.840Z","avatar_url":"https://github.com/piotrpsz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dirscanner\nDisk search program. Searches for directories and files with the specified name,\nfiles containing the specified text. Name and text searches are performed using regular expressions.\u003cbr\u003e\n\nScanning of individual directories and subdirectories is performed in parallel using the TBB library.\u003cbr\u003e\nEach directory is scanned in dedicated tasks (not a posix thread).\u003cbr\u003e\nTasks are intelligently allocated to individual threads by the scheduler in TBB.\u003cbr\u003e\nPosix threads are also created and managed by the TBB library.\u003cbr\u003e\n\nThe linear clean disk scan (without checking anything) of my whole disk \u003cbr\u003e\n(over a million directories, almost seven million files) takes:\n```\nexecution time: 218.10626712500002s\n```\nParallel scanning (in dedicated tbb-tasks) takes:\n```\nexecution time: 45.249340667000006s\n```\n(Of course, results will be different on different computers.)\n\nTo install the TBB library on macOS: \n\u003cul\u003e\n    \u003cli\u003ebrew update\u003c/li\u003e\n    \u003cli\u003ebrew install tbb\u003c/li\u003e\n\u003c/ul\u003e\n\nI use two of my libraries in the program: 'share' and 'clap'.\u003cbr\u003e\nTo add them to your project you need to add them as submodules (when git is already initialized in your project):\n\u003cul\u003e\n    \u003cli\u003egit submodule add https://github.com/piotrpsz/share.git\u003c/li\u003e\n    \u003cli\u003egit submodule add https://github.com/piotrpsz/clap.git\u003c/li\u003e\n\u003c/ul\u003e\n\u003cbr\u003e\nThe program runs on macOS and should run on Linux. It almost certainly doesn't work on Windows.\n\n## Example of use\n./dirscanner -wq --dir '/Users/piotr' --text 'filesystem' -e 'cpp|h'\u003cbr\u003e\n\nFor more information on passing parameters to the program, see my 'clap' library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotrpsz%2Fdirscanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiotrpsz%2Fdirscanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotrpsz%2Fdirscanner/lists"}