|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Nnn||16,031||a day ago||20||July 26, 2022||4||bsd-2-clause||C|
|n³ The unorthodox terminal file manager|
|📻Terminal/ssh/telnet/serialport/sftp client(linux, mac, win)|
|Lf||5,653||1||3 days ago||41||April 25, 2021||200||mit||Go|
|Terminal file manager|
|Fff||3,796||a month ago||1||March 03, 2021||57||mit||Shell|
|📁 A simple file manager written in bash.|
|Xplr||2,948||5 days ago||124||September 11, 2022||9||mit||Rust|
|A hackable, minimal, fast TUI file explorer|
|Far2l||1,484||5 hours ago||243||gpl-2.0||C|
|Linux port of FAR v2|
|Webterminal||1,431||a month ago||1||lgpl-3.0||Python|
|ssh rdp vnc telnet sftp bastion/jump web putty xshell terminal jumpserver audit realtime monitor rz/sz 堡垒机 云桌面 linux devops sftp websocket file management rz/sz otp 自动化运维 审计 录像 文件管理 sftp上传 实时监控 录像回放 网页版rz/sz上传下载/动态口令 django|
|Joshuto||1,169||20 days ago||3||July 08, 2022||31||lgpl-3.0||Rust|
|ranger-like terminal file manager written in Rust|
|Clifm||917||15 hours ago||11||gpl-2.0||C|
|The shell-like, command line terminal file manager: simple, fast, extensible, and lightweight as hell|
|Nnn.vim||590||7 months ago||2||bsd-2-clause||Vim Script|
|File manager for vim/neovim powered by n³|
tree with interactive TUI on your terminal!
gls is created to easily view, filter and search your files, folders and directories with their size whenever you need to open up some storage space. It wouldnt be wrong to say that
gls is a minimal yet powerful file manager CLI tool.
gls on your machine with the source code is pretty simple: just clone the repo and install
$ git clone https://github.com/ozansz/gls $ cd gls $ go install ./cmd/gls.go
After you run
go install command, an executable file name
gls is created in
$GOPATH/bin. Now, you can simply run
gls in terminal:
If you use a Debian-based distro on Linux, you can download the package which seems like
gls_<VERSION_NUMBER>_amd64.deb from Releases page. Then, you can install it
sudo dpkg -i gls_<VERSION_NUMBER>_amd64.debin the directory where you downloaded the package.
You can apply the similar procedure in PowerShell shown in the From Source Code section:
> git clone https://github.com/ozansz/gls > cd .\gls\ > go install -v .\cmd\gls.go
Now, you can use
gls in all directories.
There are two running modes of
gls: TUI and text-based.
The TUI mode is interactive and you will be able to use all of the features of
gls, such as searching by text/regular expression, traversing on the file tree, creating/opening/deleting files and many other things, until you close the program.
The text mode however, is fairly simple and is a literal combination of running
du altogether, with some additional features.
The command below runs
gls with TUI, which is the default mode. It parses the file tree under the specified path along with the file and folder sizes on disk, then shows the tree view of the parsed tree.
gls -path ~/Downloads
The command below does the same parsing process as the command above does. Except, this one just dumps the parsed tree as a the
tree command does with the file/folder sizes and permissions, to the terminal.
gls -nogui -path ~/Documents
gls includes (and still continues to include more) several features that mimic a normal file manager:
.glsignore, but infinitely many other ignore files can be specified through the CLI arguments
touch) and open files to edit
||quit||Exits the program|
||collapse||Collapses all nodes in the file tree view|
||expand||Expands all nodes in the file tree view|
||search||Opens modal to search nodes (files and folders) by name|
||regex search||Same as search, but you can search using regular expressions|
||restore||Loads the original file tree view, mostly used after
||open||Opens the selected (on hover) file/folder with the default program|
||open||Opens modal to specify the executable path which will be used to open the selected (on hover) file/folder|
||remove||Removes the selected (on hover) file. Folder removal is currently not supported|
||mark||Marks/unmarks the selected (on hover) file or folder. Marked nodes can be used later for
||unmark||Unmarks all the marked files and folders|
||new||Create a new file|
||duplicate||Copy/pastes the marked files and folders to a specified destination. The destination is specified by the text input of the opened form.|
||open file in vim||Opens file in VIM editor.|
||toggle expand node||Expands the node if currently collapsed, and vice versa, the selected (on hover) file or folder|
||navigate||Navigates between nodes in the file tree view|
You can freely change the key bindings and shortcuts or configure the program for your needs from
After your changes, run
go build cmd/gls.go
in the project directory.
In addition, if you think that your configurations or other changes seem necessary to improve the project, your contributions will be welcomed :)
You can customize the color palette with
.glsrc file. The only thing you need to do is create a
.glsrc file in
directory and set the colors as key-value pairs. An example is below:
GridTitleColor=blue TreeViewTitleColor=yellow FileInfoTitleColor=lightgreen DirectoryColor=red BorderColor=white FileInfoAttrColor=orange FileInfoValueColor=pink SearchFormTitleColor=brown UnmarkedFileColor=deeppink MarkedFileColor=gray FileInfoTabAttrWidth=30
When you run the program, the color palette values are overridden with values in
.glsrc file. The file must be stored in
$HOME directory and the file name must be
.glsrc. Otherwise, the program uses the default color palette values.
-debug Increase log verbosity -fmt string size formatter, one of bytes, pow10 or none (default "bytes") -ignore string Comma-separated ignore files that specify which files folders to exclude -nogui text-only mode -path string path to run on (required) -sort sort nodes by size (default true) -thresh string size filter threshold, e.g. 10M, 100K, etc.
You can also read this section from terminal by using
You are very welcome to contribute to
gls! Here are a few steps to guide you how to start contributing:
Check the open issues tab to see if there are any issue you may be interested in fixing. You can also list the issues with only the good-first-issue tag
Check the contributing guide for more explanation on setting up the development environment, opening the PR, etc.