clifm

leo-arch活跃维护

一款用 C 写的、类 shell 的命令行终端文件管理器,支持自动补全、批量重命名、文件预览和 fzf 集成,适合习惯在终端里高效浏览和管理文件的人。

💾 The shell-like, command-line terminal file manager

v1.29发布于 2026-09-18 20:47 UTC1,734star53fork同步于 2026-11-10 17:49 UTC

怎么上手

由 README 提炼,执行前请确认
README 未给出可直接复制的安装命令,仅链接到 Installation 章节
硬件要求按 README 说明

README 未说明具体硬件要求,仅称极其轻量、可在老旧硬件和仅支持 8 色的 VT102 终端上运行

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

纯命令行终端文件管理器,用 shell 式命令操作文件系统,不依赖 GUI 或 TUI

一款用 C 写的、类 shell 的命令行终端文件管理器,支持自动补全、批量重命名、文件预览和 fzf 集成,适合习惯在终端里高效浏览和管理文件的人。

核心能力

  • 用 ELN 编号和短命令直接操作文件
  • 支持书签、标签、过滤、搜索与批量重命名
  • 内置目录跳转器,按访问频率快速切换目录
  • 提供文件预览、图片预览与归档压缩支持
  • 支持插件、工作区与隐身模式扩展

容易踩的坑

图片预览等部分功能以插件或 misc/tools 形式提供,需另行配置;README 未说明默认配置与端口等细节,需查阅 wiki 文档

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.29
  1. v1.29最新正式版2026-09-18 · 2026-09-18 20:47 UTC

    Clifm 1.29 (Stan Stanman)

    Download CliFM

    Get distro-specific binary packages from the OpenSUSE Build System

    BUG FIXES:

    • Symbolic links not properly sorted when sorting by size.
    • Long-view: link to dir without access shows size '0B', while dir wihtout access shows '?'.
    • Long-view/full-dir-size: dirs without access (size '?') are sorted as if their size were 0.
    • The 'zp' command, unlike 'view', does not allow specifying file names in the command line.
    • No overwrite prompt when duplicate names are in the source list and not in the destination directory.
    • Relative symlinks not properly resolved by 'p'/'pp'/'--stat'.
    • Bulk-link ('bl' command) does not honor the 'LinkCreationMode' option.
    • No information for files with timestamps dated before the Unix Epoch.
    • Almost unusable/unresponsible when selecting thousands of files.
    • When compiled in POSIX-mode, '--stat' always fails to retrieve the file's MIME type.
    • If $NO_COLOR (system-wide) is set, there's no way to override this specifically for Clifm. You can now force colorization using either '--color=always', or setting $CLIFM_FORCE_COLOR to either '8', '16', '256', '24bit', or 'truecolor'.
    • Files deselected after running 't sel', even if the operation was cancelled (the user entered 'no' in the confirmation prompt).
    • '--stat' does not honor '--unicode'.
    • The prompt displays negative error codes on Haiku.
    • Some keybindings do not work after being set with the 'kb bind' command.
    • Commands using fused parameters with ranges starting with 10, 20, 30, etc do not work. E.g., 's10-12'.
    • When selections are modified from a second instance, the prompt indicator is updated, but not the file list. A second screen reload is required.
    • Unable to select a file whose name contains an embedded newline char (yes, these names are an abomination, but they're legal and a file manager should be able to handle them).
    • Filenames containing invalid UTF-8 chars break suggestions.
    • Filenames containing invalid UTF-8 chars break the interactive rename prompt ('m' command).
    • Wrong behavior when previewing files whose name starts with a dash (-).
    • Wrong colorization when accepting the first suggested word (Alt+f).
    • File type filters not working with regex searches (e.g., '/.*.d$ -d /etc').
    • Completions/suggestions not working for starting path in the search function ('/QUERY dir/').
    • ft: quoted filter ignores negation.

    NEW FEATURES/IMPROVEMENTS:

    • Fast-magic: add file type detection for text files (mostly source-code files: almost 40 languages detected!).
    • Allow ELN ranges for single files (e.g., '1-1' or '1-' where there is only one file).
    • Allow overriding z-commands with custom command names (aliases or actions). Completions/suggestions for overridden commands are disabled.
    • Add 'skip' and 'skipall' options to the overwrite prompt (c/m commands) (replacing the previous functions of 'no' and 'none', which now copy files, but renaming them). Consult the manpage or run 'c --help' for more information.
    • Document z-commands. Press z for the list of commands or consult the manpage for more information.
    • Add opening apps (f3d, prusa-slicer, openscad) for 3D-Graphic files (stl,step,3mf,iges,scad). Update your mimelist.clifm file.
    • Use the '-r' switch to recursively select files. E.g., 's *.png -r', or 's *.png -r dir/' to start from the directory 'dir'. To evaluate the selection pattern as a regular expression (instead of as a wildcard), use '-R'.
    • Recursive search is now made with '-r' (the old '-x' is still supported for backward compatibility).
    • Allow using all available answers for the overwrite prompt as default answer.
    • The new default answer
  2. v1.282026-05-28 · 2026-05-28 02:34 UTC
    查看更新说明

    Clifm 1.28 (Rubber Chicken)

    Download CliFM

    Get distro-specific binary packages from the OpenSUSE Build System

    Bug fixes :beetle: :bug:

    • When mounting a remote, a directory named " is created in the current directory if Mountpoint is set to the empty string ("").
    • Purged entries (j --purge) are not removed from the jump database.
    • File list refreshed after command execution without any reason.
    • If compiled without libmagic support (_NO_MAGIC), MIME type detection fails in stealth-mode.
    • Terminal title not set in some terminals (e.g., wezterm).
    • FILE APP fails with message Success.
    • Success error message when trash files exist but are not directories in stealth-mode.
    • Cannot unmount device with the media command when the user is in the mountpoint.
    • ac: Cannot create hidden archive (starting with dot) if no extension is provided
    • DirIconColor, in the color scheme file, does not support short color sequences (including hex).
    • DirIconColor is ignored for directories with special icons.
    • The c key in the file pager stopped working.
    • Alt+w (in virtual directories) toggles to the current mode the first time it is pressed.
    • MaxNameLen ignored when running without ELNs in long view.
    • When not sorting by time (and TimeFollowsSort is enabled), the long view always shows modification time, ignoring the value set for the time field in PropFields.
    • p/pp command: Key values for extended attributes are never printed (only the key itself).
    • Duplicated entries when listing keybindings (kb command).
    • ~/dir/query<TAB> fails to display previews.
    • ~/.config/clifm/mime.types file ignored when running with --open or --preview.
    • Not properly handling . and .. as starting paths (e.g. clifm .).

    New features/Improvements :sunglasses: :godmode:

    • When creating an archive using zstandard (ac FILES and then archive.zst as archive name), archive files first with tar(1) and then compress the archive with zstandard, generating thus a .tar.zst compressed archive (instead of multiple compressed .zst files, like before).
    • Add a counter for total entries at the end of the jump table (j command).
    • Colorize entries according to file type/state in the dirhist screen (dh command).
    • p/pp: do not display size for special devices (character/block), and place Device type on its own line.
    • Automatically open .a, .ace, .ar, .arc, .cpio, .Z, .lrz files with ad (our built-in archiver command). Update your mimelist.clifm file (https://github.com/leo-arch/clifm/blob/master/misc/mimelist.clifm).
    • More accurate MIME-type detection: Fallback to mimetype(1)/xdg-mime(1), if available (and in this precedence order), when libmagic does not get conclusive results (i.e., it returns application/octet-stream).
    • Use the built-in file type identification check (Moira) before falling back to libmagic (very useful to improve detection speed of common file types such as PDF, PNG, MP4, etc). Disable with FastMagic=false in the config file.
    • When importing MIME associations (mm import), check mimeinfo.cache files as well.
    • Support Shared MIME-info XML files as MIME associations file (via $CLIFM_MIMETYPES_FILE). Example: CLIFM_MIMETYPES_FILE=/usr/share/mime/packages/freedesktop.org.xml clifm.
    • Add preview support for extra archive formats. Update your preview.clifm file (https://github.com/leo-arch/clifm/blob/master/misc/preview.clifm).
    • Allow auto-opening multiple files at once (provided all files to be opened are associated to the same opening ap
  3. v1.27.12026-01-10 · 2026-01-10 01:27 UTC
    查看更新说明

    Clifm 1.27.1

    Download CliFM

    Get distro-specific binary packages from the OpenSUSE Build System

    Bug fixes :beetle: :bug:

    • If the profiles directory cannot be read, we get NULL pointer dereferences (possibly crashing).
    • MaxFilenameLen value lost after visiting a directory containing a single file.

    New features/Improvements :sunglasses: :godmode:

    • Add extraction message when extracting zip-based files (e.g., docx or odt).
    • Allow extracting zip-based files with bsdtar(1). Previosly, only unzip(1) and 7z(1) were used.
    • Do not allow to delete the current profile (using pf del).
    • Allow profile names to start with a dot.
  4. v1.272026-01-07 · 2026-01-07 00:50 UTC
    查看更新说明

    Clifm 1.27 (Pieces o'Eight)

    Download CliFM

    Get distro-specific binary packages from the OpenSUSE Build System

    Bug fixes :beetle: :bug:

    • fzfnav/BFG plugin: chafa does not display images on foot terminal.
    • Filename validation not working for uppercase file type characters (e.g. =C).
    • Cannot compile in OpenBSD 7.8-CURRENT (missing typedef).
    • Recursive remove message not shown when removing multiple directories.
    • No screen refresh after archive extraction.
    • ../ in a symlinked directory does not work when cd is omitted (autocd).
    • Directory names containing a dot are truncated as if they have an extension (sorting by extension already omits extensions in directory names).
    • The safe names check emits warnings only for the first error, omitting the remaining ones.
    • dup FILE replaces broken symlink if it is named FILE.copy.
    • File colors do not match those in the file list when in light mode.
    • Using incomplete ranges (ELN-) in the untrash screen silently fails the second time.
    • Error when compiling with CLIFM_SUCKLESS.
    • Cannot open files using the mm open command on Windows (#354).
    • Garbled output (in the prompt) on slow SSH connections (#355).
    • Alt-z skips type sort in light mode.
    • n FILE@<TAB> overrides FILE in the command line when there is a single template file.
    • No icon for hardlinked files.
    • Wrong icon for .a files.
    • Some icons are not visible in light themed terminals.
    • Umask in config does not work at startup (overridden by shell inherited value).
    • Filenames with embedded single UTF-8 continuation bytes are not properly handled.
    • Default answer ignored after pressing Ctrl+d in confirmation prompts.

    New features/Improvements :sunglasses: :godmode:

    • Add iina to video/audio opening apps.
    • Invert/toggle selections in the current directory with sel --invert (or Shift+Tab). Note: you may need to add the keybinding yourself. Enter kb bind invert-selection and then press Shift+Tab.
    • Add key bindings for workspaces 5-8 (Alt+[5-8]).
    • Allow decompressing ZIP-based files (such as .docx, .odt, and .apk files) via the ad command.
    • Make safe filename check inform all safety warnings.
    • Add leading/trailing whitespace and leading tilde check to the safe filename check.
    • Validate new filenames when copying or renaming files.
    • Enable/disable filenames validation when creating/renaming files (n and m commands respectively) using the SafeFilenames option in the configuration file (consult the manpage for details).
    • Add swayimg support to img_view.sh plugin.
    • Import CLIFM_STAT_AUTOCMD when Notifications are disabled for the current prompt.
    • Use a more proper icon for symbolic links (oct_file_symlink_file).
    • Allow MaxFilenameLen to take percentage values. E.g., 25% for 1/4 of terminal columns.
    • MaxFilenameLen defaults now to 25%. To get back the old behavior, set MaxFilenameLen to 20 in the config file.
    • Avoid single-width emojis (for emoji-icons) to prevent rendering issues.

    Misc

    • Manpage completions directory moved from $XDG_DATA_HOME to $XDG_CACHE_HOME.
    • FilesCounter option renamed to FileCounter.
    • Since fzf 0.66, hiding the gutter requires adding --gutter=' ' to FzfTabOptions in the color scheme file (edit using cs edit). Notice that gutter:-1 is not required anymore in the --color option. See https://github.com/junegunn/fzf/blob/master/CHANGELOG.md#hiding-the-gutter-column
    • A few changes on how state information is exported to the environment when run
  5. v1.26.32025-09-28 · 2025-09-28 22:41 UTC
    查看更新说明

    Clifm 1.26.3

    Download CliFM

    Get distro-specific binary packages from the OpenSUSE Build System

    Bug fixes :beetle: :bug:

    • Warning prompt color is broken.
    • Single character commands not recovering from warning prompt.
    • Run with -T ~/trashfile, create a file named ~/trashfile2: this latter cannot be trashed.
    • Freeze when running non-interactively and in the background.
    • Some GTK programs crash when launched from within clifm (XDG_DATA_DIRS corruption).

    New features/Improvements :sunglasses: :godmode:

    • Replace --stdtab, --fzftab, --fzftab, and --smenutab by --tabmode=fzf|fnf|smenu|standard.
    • Prevent shell commands from leaving the terminal in an unusable state.
    • Improved key binding translation support (via the keypress translation library).
    • Allow the use of colon as color field separator.

    Misc

    • Remove --fzytab (deprecated since 1.12.9).

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译


    demo


    👾 Brief description

    Clifm is a shell-like, text-based terminal file manager that sits on the command line.

    Some of its key features include: bookmarks, search, file selection, file tags, file filters, file previews (including image previews), bulk rename, archiving, trash, file opener, directory jumper, autocommands, workspaces, plugins, autosuggestions, specific command line expansions, and more. Consult the Features section below for a more comprehensive list.

    While feature-rich, powerful, and extensible, its true strength lies in its design philosophy. Unlike traditional terminal file managers, based on the text user interface (TUI), clifm embraces the command-line interface (CLI). This means you can interact with your filesystem by typing commands directly, just as you would in a regular shell, but with greater ease, speed, and advanced capabilities.

    For this reason, clifm does not need to be better: it's just different! :wink:

    To get started, consult the Getting started section below.


    ✔️ Features

    In addition to common file operations, such as copy, move, remove, etc., clifm provides the following features:


    For a detailed explanation of each of these features, follow the corresponding links or consult the Wiki.


    🎬 Introduction video

    Alt text


    💾 Installation

    From a package manager

    If running on Linux, binary packages are available for most major distributions via the OpenSUSE Build System.

    From source (Linux/BSD)

    Note: Dependencies are most likely already satisfied, but, in any case, consult the dependencies section.

    git clone https://github.com/leo-arch/clifm.git
    cd clifm
    sudo make install
    

    For more information/supported platforms, consult the installation page.


    💡 Getting started

    To start using clifm, you don't need to learn anything new: the usual shell commands will just work. However, there is much more than just shell commands...
    ✓ The help command gives you a quick introduction to clifm: once in the command prompt, enter help or ?.
    ✓ Type cmd<TAB> to get the list of available commands and a brief description.
    ✓ Type help <TAB> to get the list of available help topics. Select the one you want and press Enter.
    ✓ To jump into the COMMANDS section in the manpage, simply enter cmd or press F2.
    ✓ Press F1 to access the full manpage and F3 to access the keybindings help-page.
    ✓ To get help about some specific command, just enter CMD -h. For instance, s -h.

    You can also take a look at our FAQ and these basic usage-examples.
    For a complete description, please consult our Wiki.

    [!TIP] Start clifm and just press a number (technically, an ELN or Entry List Number).


    📰 What's new?

    Consult the changelog file.


    Support

    Clifm runs on Linux, Termux (Android), FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS, Solaris/Illumos, Haiku, and Cygwin/MinGW, on x86, ARM, PowerPC, and RISC-V architectures.


    License

    This project is licensed GPL version 2 (or later). See the LICENSE file for details.


    Contributing

    Contributions are kindly welcome! Please see our contribution guidelines for details.


    Community

    Visit the Discussions section of this repo and let us know what you think: ideas, comments, observations and questions are always useful.


    Developer

    Leo Abramovich <[email protected]>.

    Special thanks to all those who have contributed to this project.