11 - exa - 总览目录的工具

ls 指令会列出目录中的各个档案与目录,供使用者浏览整个目录的结构,是个十分常用的指令。

但它的设计考量到以前电脑的效能,所拥有的功能较为阳春,一切都是以减少执行时间与空间下去考量的,因此对於使用者来说,就需要自己花时间对 ls 输出的讯息下去做分析或输入进一步的指令以取得想要的资讯。

来到今天,电脑的效能已经不在是个问题了,因此使用者值得一个更人性化的工具来减少需要耗费的精力。

现代化的目录总览工具 - exa

exa 是个目录总览的指令工具,它以颜色区分档案的类型、资讯,并且用有树状总览的功能,在开发方面也与 Git 整合,让开发者可以清楚地知道每个档案目前的状态。

安装 exa

使用 Homebrew 安装 exa

brew install exa

安装完成後,可以使用 exa 叫用。

https://ithelp.ithome.com.tw/upload/images/20210927/20107789NCGC7T6sLk.png

使用 exa

除了专属功能外, exa 的使用方式与 ls 大致上相同。

exa 会以 grid 的模式列出当前目录内的档案与目录(与加上 --grid 时相同,此为预设模式),并且以颜色区分各个不同的类型。

exa

加上 -l 会输出各个目录及档案的细节资讯,此模式称为 long 。

exa -l

https://ithelp.ithome.com.tw/upload/images/20210927/20107789aFdqJ4C3Db.png

在各个资讯上不仅上了颜色,档案容量也转为人所能理解的单位。

加上 --tree 後可以浏览树状结构,并且可以用 --level 设置输出的层数。

exa --tree --level=2

https://ithelp.ithome.com.tw/upload/images/20210927/201077899Rk120XfkZ.png

在 grid 与 tree 模式下都可以加上 -l 来对档案与目录输出细部资讯。

# long view in the grid
exa --grid -l

# long view in the tree
exa --tree -l

当目录是个 Git 库时,可以在 long 模式下使用 --git 输出 Git 资讯。

exa -l --git

https://ithelp.ithome.com.tw/upload/images/20210927/20107789ma4NKG8hZq.png

Git 资讯中会有两个状态符号:

  • N :新的档案。
  • M :修改过的已存在档案。

如果想要更清楚地辨别各种档案与目录,可以使用 --icons 参数,它会在档名前面加上对应的类型图示。

exa --icons

https://ithelp.ithome.com.tw/upload/images/20210927/20107789cbePaSdg43.png

整合 Zim 的 Module

Zim 有提供一个官方的 Module exa ,安装这个 Module 後可以得到别名与更优地预设。

~/.zimrc 中加上 exa

zmodule exa

然後执行 zimfw install 安装 Module 并重启终端机。

如此一来,我们可以直接使用别名来叫用 exa ,变得更加方便。

本文重点整理

  • ls 作为总览目录的指令,其所显示的方式与资讯都较为不变与阳春。
  • exa 是个现代化的 ls 指令,提供颜色提示类型与资讯、 Git 整合与树状结构,来提昇整体的有用讯息。
  • exa 指令预设使用 grid 模式,作为输出的方式。
  • 使用 -l 启用 long 模式,藉此得到更多的细部资讯。
  • 使用 --tree 启用 tree 模式,输出树状结构,并以 --level 来设置输出的层数。
  • 在 grid 与 tree 模式下,都可以使用 -l 输出详细资讯。
  • 当目录在 Git 库中时,可以使用 --git 输出 Git 的资讯。
  • 使用参数 --icons 可以在档案前输出图示,以增加各类型的识别度。
  • 搭配 Zim 的 Module ,可以得到别名与更佳地预设。

参考资料


<<:  铁人赛 Day27 -- CSS动画 animation -- @keyframes

>>:  Day 12: 人工智慧在音乐领域的应用 (机器学习/深度学习与类神经网路三)

让按钮来个酷动态!操纵DOM事件:JavaScript篇 (二)

上一篇整理了 JavaScript 操纵网页元件事件的基本流程: 指定网页元件,可用 getElem...

【Day01】JavaScript 是如何运行的

程序语言的运行过程 在知道如何运行之前,必须先了解程序语言是如何被运行的。 程序语言依照运行方式可分...

Day 18 修改add()方法

假设今天有个状况是这样:有一笔日志,新增第二笔但还没送出前,想将第一笔删除,这时会发生什麽事呢? 竟...

主管与技术团队的分工

我自己是从RD出身的主管,我自己也想了很久,我到底做对了什麽,与可能做错了什麽,让我自己培养出这样的...

梳理useEffect和useLayoutEffect的原理与区别

点击进入React源码调试仓库。 React在构建用户界面整体遵循函数式的编程理念,即固定的输入有固...