比起各种 GUI 的文件管理器,比如各个操作系统自带的文件管理器,或者第三方的像 Total Commander 和 ForkLift 之类的,Terminal File Manager 的优势有两个:

  1. 支持所有的操作系统,这样在所有系统中都有相同的体验,特别是可以搭配同样跨平台的 terminal,比如 Wezterm, Alacritty;
  2. 更好的键盘操作支持,有些 GUI 的管理器同样有部分的键盘快捷键支持,但是远远不如 terminal 中的易用和全面,毕竟在 terminal 中是键盘为主,鼠标为辅的操作逻辑。

这两个优势带来的好处就是用户只需熟练使用一种操作逻辑就可以在所有操作系统中高效地完成文件管理工作,而对比 GUI 程序不足的点在于:

  1. 不能显示图片,terminal 最大的问题是基于文本的,所以不能在 file manager 中实时的预览图片,Ranger 中有插件可以支持,但似乎已经不再更新了;
  2. 翻页和滚动不如 GUI,terminal 中的滚动是按行来的,而 GUI 中是按像素来的,直观来说就是 GUI 中的滚动会流畅非常非常多;
  3. 打开的可能没有 GUI 快,一般的文件管理器会常驻在系统 Dock 上,可以快速的打开,用户也习惯了通过鼠标快速的点击到目标目录,而 terminal 则要先打开 terminal,再打卡 file manager 再通过键盘操作来进入目录(这里可以通过各种办法跳过),这一点需要看使用场景,如果是已经在 terminal 当中,那打开 file manager 的速度会比 GUI 快很多。

但这些劣势其实并不影响文件管理的核心功能,所以大部分时间我们可以使用 terminal 来作为主力管理器。

比起在 Linux 上使用 shell 命令来说,terminal file manager 提供了一种更直观的操作逻辑,在图形界面批量处理选择复制等操作比起使用命令来说会更直观和高效,但在批量处理时可能会不如特别编写的脚本,不过 file manager 在所有操作系统上都有同样的快捷键,而 DOS 和 linux shell 则是完全不同的命令了。

下面是些我了解的 Terminal File Manager。

Vifm

Vifm 是一个两栏的文件管理器,其最大的优势就是操作逻辑和 Vim 相近,Vim 用户可以使用同样的快捷键进行移动,甚至复制删除等操作也符合 Vim 的逻辑,这里有个 ViFM Cheatsheet 列出了所有常用的快捷键。

Midnight Commander

Midnight Commander 有点像是个 terminal 版的 total commander,主要操作都绑定在了 FN 键上,移动的快捷键则是 Emacs 风格,比较有特点的是能够方便的对文件进行压缩和解压,可以直接进入 zip 压缩文件,并往 zip 中 copy 文件,但让我最困惑地是它缺少了回到上一级文件夹的快捷键,只有点击 /.. 目录才行,这让文件浏览的速度大打折扣。

Ranger

Ranger 也是一个基于 vim 快捷键逻辑的管理器,默认是多级的目录浏览,也可以配置成 Midnight Commander 类似的双栏的显示效果,主要的优势可能是用的人数要多些,插件更多,教程可能也更多一点,但 ranger 是 python 写的,所以安装时要安装 python 的依赖,内存消耗上也会比上面两个要大。

LF

类似 Ranger,但是用 golang 写成。

Yazi

用 Rust 写的 LF, 比起 LF 来说,最大的好处就是内置了针对各种 terminal app 的图片显示支持,基本不用配置,开箱就能用。