{"id":21643693,"url":"https://github.com/akshayxml/linux-terminal-based-file-explorer","last_synced_at":"2026-04-16T13:36:00.791Z","repository":{"id":69055105,"uuid":"303423051","full_name":"akshayxml/Linux-Terminal-Based-File-Explorer","owner":"akshayxml","description":"A Linux terminal based file explorer that can run in 2 modes: Normal mode and Command mode. Normal mode supports viewing and traversing directories and opening files. Command mode supports various operations like create, delete, rename, copy, move, search files and directories, and goto other directories. Detailed description in readme.","archived":false,"fork":false,"pushed_at":"2020-12-27T06:11:46.000Z","size":207,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-25T04:09:47.359Z","etag":null,"topics":["command-line-tool","cplusplus","linux","os","systemcalls","terminal"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akshayxml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-10-12T14:47:43.000Z","updated_at":"2020-12-27T06:11:47.000Z","dependencies_parsed_at":"2024-04-24T15:04:19.686Z","dependency_job_id":null,"html_url":"https://github.com/akshayxml/Linux-Terminal-Based-File-Explorer","commit_stats":null,"previous_names":["akshayxml/linux-terminal-based-file-explorer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayxml%2FLinux-Terminal-Based-File-Explorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayxml%2FLinux-Terminal-Based-File-Explorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayxml%2FLinux-Terminal-Based-File-Explorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayxml%2FLinux-Terminal-Based-File-Explorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akshayxml","download_url":"https://codeload.github.com/akshayxml/Linux-Terminal-Based-File-Explorer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244394458,"owners_count":20445631,"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":["command-line-tool","cplusplus","linux","os","systemcalls","terminal"],"created_at":"2024-11-25T05:35:33.264Z","updated_at":"2026-04-16T13:36:00.761Z","avatar_url":"https://github.com/akshayxml.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linux Terminal Based File Explorer\n\n### Prerequisites\n\n1. G++ compiler\n   - `sudo apt-get install g++`\n\n### How to compile project\n\n1. go to project directory and run following command\n   - `make`\n2. To clean solution\n   - `make clean`\n\n### How to Run project\n\n1. Open the explorer in the current directory:\n   - `./main`\n2. Open the explorer in any directory:\n   - `./main directory_path`\n\n### Functionality \n\nThe file explorer can work in two modes, normal mode and command mode.\nThe application starts in normal mode, which is the default mode and used to explore the current directory and navigate around in the filesystem.\n\u003cbr/\u003e\nThe root/home of the application is the directory where the application started.\n\u003cbr/\u003e\nThe last line of the display screen is to be used as status bar - to be used in normal and command modes.\n\n### 1. Normal Mode:\n\n**1.1 Read and display list of files and directories in the current folder**\n\n- File explorer shows each file/directory in the current directory (one entry per line). The following attributes are visible for each file (similar to what gets displayed on ls -l)\n\n  - File/Directory Name\n  - Ownership (User \u0026 Group) \u0026 Permissions\n  - File/Directory size\n  - Last modified\n\n- The File explorer also handle scrolling using 'k' and 'l' keys in case the directory has a lot of files. Press 'l' to view the next set of files and 'k' to view the previous set of files.\n- The file explorer also show the entries “.” \u0026 “..” for current and parent directory respectively.\n- User can navigate up \u0026 down the file list using corresponding arrow keys.\n\n![](images/normal_mode.png)\n\n**1.2 Open files \u0026 directories**\n\n- When enter is pressed\n  - Directory​ - It will clear the screen and Navigate into the directory and shows the files \u0026 directories inside it as specified in point 1\n  - Files​ - It will open the file in vi editor.\n  \n**1.3 Traversal**\n- Go back - Left arrow key takes the user to the previously visited directory.\n- Go forward - Right arrow key takes the user to the next directory.\n- Up one level - Backspace key takes the user up one level\n- Home - ​h​ key takes the user to the home folder \n\n### 2. Command Mode:\n\nThe application enters the command mode whenever the `:` (colon) key\nis pressed.\n\u003cbr/\u003e\nUpon entering the command mode the user can enter different commands. All commands entered by the user appears at the bottom of the terminal.\n\n![](images/cmd_mode.png)\n\n**2.1 copy, move and rename**\n\n```\ncopy \u003csource_file(s)\u003e \u003cdestination_directory\u003e\nmove \u003csource_file(s)\u003e \u003cdestination_directory\u003e\nrename \u003cold_filename\u003e \u003cnew_filename\u003e\n```\n\n```\nEg:\ncopy foo.txt bar.txt baz.mp4 ~/foobar\nmove foo.txt bar.txt baz.mp4 ~/foobar\nrename foo.txt bar.txt\n```\n\nDirectories can also be copied/moved and the file ownership/permissions will remain intact.\n\n**2.2 create files and directories**\n\n```\ncreate_file \u003cfile_name\u003e \u003cdestination_path\u003e\ncreate_dir \u003cdir_name\u003e \u003cdestination_path\u003e\n```\n\n```\nEg:\ncreate_file foo.txt ~/foobar\ncreate_file foo.txt .\ncreate_dir folder_name ~/foobar\n```\n\n**2.3 delete files and directories**\n\n```\ndelete_file \u003cfile_path\u003e\ndelete_dir \u003cdirectory_path\u003e\n```\n\n```\nEg:\ndelete_file ~/foobar/foo.txt.\ndelete_dir ~/foobar/folder_name\n```\n\n**2.4 goto**\n\n```\ngoto \u003cdirectory_path\u003e\n```\n\n```\nEg:\ngoto /home/aos/\ngoto ~\n```\n\n**2.5 Search a file or folder given fullname.**\n\n```\nsearch \u003cfile_name\u003e or search \u003cdirectory_name\u003e\n```\n```\nEg:\nsearch foo.txt\n```\n\n**2.6 On pressing ‘ESC’ key the application will go to Normal Mode**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayxml%2Flinux-terminal-based-file-explorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshayxml%2Flinux-terminal-based-file-explorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayxml%2Flinux-terminal-based-file-explorer/lists"}