当前位置: 首页 > 科技观察

为什么我不再在Linux上使用ls命令

时间:2023-03-13 00:02:26 科技观察

如果您使用Linux和类Unix操作系统,那么您肯定熟悉或使用过ls命令行实用程序。它列出有关文件或目录的信息。作为一个已有数十年历史的命令,ls不提供您可能需要的现代功能,例如Git支持、彩色和树视图输出。这就是exa工具的用武之地,它是Linuxls命令的现代替代品。exa:用Rust语言编写的ls文件列表命令替换与ls类似,exa也是一个用于列出文件的免费开源命令行实用程序。然而,exa轻便、快速、用户友好,具有更多的特性和更好的查询性能。如果您经常涉及列出并与数百个文件进行交互,Exa可以通过使用并行查询在几秒钟内显示输出来帮助您减少大量工作。它不仅可以快速查找,还有助于轻松识别文件类型和元数据,默认情况下,它们会根据文件扩展名以不同的颜色显示。exavsls如上图所示,默认情况下,exa也会输出一个便于我们查看的文件大小。尽管您需要对ls命令使用-h或--human-readable选项。此外,exa带有用于树视图输出的内置工具,您还可以将其与文件信息结合使用。将树视图输出与exa和ls区分开来的最有趣的特性是对Git版本控制系统的支持。如果您在Git存储库中并且想查看自上次提交以来是否有任何文件已更改或被修改,而无需安装Git和使用gitstatus,您可以将--git选项与exa一起使用。它将在元数据表中添加一个新的Git列,其中包含两个描述暂存或未暂存状态的字符。Git集成如何在Ubuntu和其他Linux发行版上安装Exa?有趣的是,exa是一个独立的二进制文件,不需要安装任何依赖项。唯一需要安装的是下载操作系统的二进制文件并将它们放在$PATH环境变量中列出的目录中(很可能是/usr/bin/)。但是,如果您发现这种手动方法很困难,另一种(也是最简单的)安装exa的方法是使用系统的默认包管理器。对于Debian和Ubuntu20.10+,您可以运行:linuxmi@linuxmi:~/www.linuxmi.com$sudoaptinstallexaonArchLinuxlinuxmi@linuxmi:~/www.linuxmi.com$pacman-SexaonFedoralinuxmi@linuxmi:~/www.linuxmi.com$dnfinstallexa在Gentoolinuxmi@linuxmi:~/www.linuxmi.com$emergesys-apps/exa在openSUSElinuxmi@linuxmi:~/www.linuxmi.com$zypperinstallexa在Fedoralinuxmi@linuxmi:~/www.linuxmi.com$dnfinstallexa此外,如果您使用的是macOS并且已经安装了Homebrew包管理器,请运行以下命令:linuxmi@linuxmi:~/www.linuxmi.com$brewinstallexa最后,您还可以获取源代码、所需的依赖项以及按照此处给出的说明编译和构建。如何使用Exa?列出包含元数据的文件使用--long或-l选项,您可以显示文件及其元数据。linuxmi@linuxmi:~/www.linuxmi.com$exa-llistmetadata而且,如果你不知道元数据中的每一列是什么意思,你可以使用相同的选项,--header或-h添加一个使用为每一列定义一个新行。linuxmi@linuxmi:~/www.linuxmi.com$exa-lhlistfiledetailswithheadershowcontentsofdirectory如果你想列出特定目录的所有内容,请使用当前目录路径作为参数而不是当前目录。linuxmi@linuxmi:~/www.linuxmi.com$exa/home/linuxmi列出目录列出所有目录和子目录中的文件要递归地列出目录和子目录,可以选择--recurse或-R。它为每个子目录创建一个单独的列表。linuxmi@linuxmi:~/www.linuxmi.com$exa-Rrecursivesubdirectory以树状结构列出目录的内容因为exa有一个内置的设施来递归地显示树状内容,你不需要树-like这样的附加命令。您可以传递--tree或-T选项,这将以树结构列出所有目录和子目录的内容。linuxmi@linuxmi:~/www.linuxmi.com$exa-R树形结构输出如果想一定程度上查看子目录的内容,也可以使用-L或--level=(depth)选项来限制递归的深度。linuxmi@linuxmi:~/www.linuxmi.com$exa-T-L2深度有限树输出linuxmi@linuxmi:~/www.linuxmi.com$exa-T-L1深度有限树输出禁用彩色输出不喜欢查看彩色终端输出?好吧,exa也接受--color选项,其值为always、automatic和never。如果要禁用颜色,请传递--color=never参数。linuxmi@linuxmi:~/www.linuxmi.com$exa--long--color=neverdisablecolorforexaoutput如果你想充分利用exa实用程序,你可以阅读它的官方文档。您认为是时候用exa命令替换ls了,还是您已经这样做了?请在下面的评论中告诉我们。