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

du命令的几个更好的替代方法

时间:2023-03-19 16:59:19 科技观察

大家对du命令应该不陌生,它可以计算总结类Unix系统中文件和目录的空间使用情况。如果您还需要经常使用du命令,那么您会对以下内容感兴趣。我发现了五个更好的替代旧du命令的方法。当然,如果以后有更多更好的选择,我会继续罗列。如果您有其他建议,请在评论中留下。ncduncdu作为普通du的替代品在Linux社区中变得流行。ncdu是基于开发者对du性能的不满而开发的。ncdu是一个使用C语言和ncurses接口开发的简单快速的磁盘使用分析器,可用于查看本地或远程系统上的目录或文件占用的磁盘空间。如果有兴趣查看ncdu的详细介绍,可以浏览这篇文章《如何在 Linux 上使用 ncdu 查看磁盘占用量》。tin-summertin-summer是一个用Rust语言编写的免费开源工具,可用于查找占用磁盘空间的文件,它是du命令的另一个替代品。由于使用了多线程,tin-summer可以比du命令更快地计算大目录的大小。tin-summer和du命令的区别是前者读取文件大小,后者读取磁盘使用情况。tin-summer的开发者认为它可以替代du,因为它有以下优点:在大目录的运行速度上比du快;它在显示结果中默认使用易于阅读的格式;它可以使用正则表达式来排除文件或目录;输出可以排序和着色;可扩展等安装tin-summer要安装tin-summer,只需在终端中执行以下命令:$curl-LSfshttps://japaric.github.io/trust/install.sh|sh-s----gitvmchale/tin-summer您也可以使用cargo包管理器安装tin-summer,但您需要先在系统上安装Rust。Rust安装完成后,执行如下命令:$cargoinstalltin-summer如果上述两种方法都无法成功安装tin-summer,也可以从其软件发布页面下载最新版本的二进制文件进行手动安装。使用方法(LCTT译注:tin-summer的命令名为sn)如果需要查看当前工作目录的文件大小,可以执行以下命令:$snf749MB./.rustup/toolchains749MB./。rustup147MB??./.cargo/bin147MB??./.cargo900MB.不需要额外的声明,它也默认以易于阅读的格式向用户显示数据。使用du命令时,必须添加一个额外的-h参数才能获得相同的效果。只需要执行如下形式的命令,即可查看特定目录的文件大小。$snf还可以对输出结果进行排序,例如,下面的命令可以输出指定目录中的前5个文件或目录:$snsort/home/sk/-n5749MB/home/sk/.rustup749MB/home/sk/.rustup/toolchains147MB??/home/sk/.cargo147MB??/home/sk/.cargo/bin2.6MB/home/sk/mcelog900MB/home/sk/顺便说一句,上面结果中的最后一行是指定目录/home/sk的总大小。所以不要奇怪为什么输入了5,实际输出了6行。搜索当前目录下有建设项目的目录,可以使用以下命令:$snartin-summer还支持搜索指定大小的建设项目目录。例如,执行以下命令查找一个超过100MB的工程项目的目录:$snar-t100M会比较慢。不过其开发者表示,这个缺陷会在未来的版本中进行优化。如需帮助,请执行以下命令:$sn--help如果您想更详细的介绍,可以查看该项目的GitHub页面。dustdust(意思是du+rust=dust)是一个用Rust编写的免费、开源、更直观的du工具。它可以立即显示一个目录占用了多少磁盘空间,而无需head或sort命令。和tin-summer一样,它默认以人类可读的格式显示每个目录的大小。安装dust由于dust也是用Rust编写的,因此也可以通过cargopackagemanager安装:$cargoinstalldu-dust你也可以从其软件发布页面下载最新版本的二进制文件并按如下方式安装。在撰写本文时,最新版本为0.3.1。$wgethttps://github.com/bootandy/dust/releases/download/v0.3.1/dust-v0.3.1-x86_64-unknown-linux-gnu.tar.gz提取文件:$tar-xvfdust-v0.3.1-x86_64-unknown-linux-gnu.tar.gz***将可执行文件复制到您的$PATH(eg/usr/local/bin):$sudomvdust/usr/local/bin/Usagerequires查看文件当前目录和所有子目录的大小,可以执行以下命令:$dust输出示例:带-p参数,可以显示从当前目录开始的完整目录。$dust-pdust2如果需要查看多个目录的大小,只需要同时列出这些目录,并用空格隔开:$dust这里再举几个例子,例如:显示文件长度:$dust-s只显示10个目录:$dust-n10查看当前目录下最多3个子目录:$dust-d3查看帮助:$dust-h如果想更详细的介绍,你可以查看此项目的GitHub页面。diskusdiskus也是一个用Rust编写的小型、快速的开源工具,可以用作du-sh命令的替代品。diskus会计算当前目录下所有文件的总大小,相当于du-sh或du-sh--bytes,但它的开发者说diskus运行速度比du-sh快9倍。安装diskusDiskus已经存放在ArchLinuxUser-communityRepository(AUR),ArchLinuxUser-communityRepository(AUR)。它可以通过任何AUR帮助工具(如yay)安装在基于Arch的系统上:page:$wget"https://github.com/sharkdp/diskus/releases/download/v0.3.1/diskus_0.3.1_amd64.deb"$sudodpkg-idiskus_0.3.1_amd64.deb也可??以安装diskus使用货物包管理器,但必须先在系统上安装Rust1.29+。安装好Rust之后,可以使用如下命令来安装diskus:$cargoinstalldiskus用法一般情况下,如果我需要查看某个目录的大小,我会使用du-sh这样的命令。$du-shdir这里的-s参数表示显示总大小。如果使用diskus,可以直接显示当前目录的总大小。$diskus我用diskus查看ArchLinux系统上各个目录的总大小,这个工具确实比du-sh快很多。但它目前只显示当前目录的大小。如需帮助,请执行以下命令:$diskus-h更详细的介绍可以查看该项目的GitHub页面。duuduu是DirectoryUsageUtility的缩写。它是一个用Python编写的查看指定目录大小的工具。它是跨平台的,因此可以在Windows、MacOS和Linux系统上使用。在安装duu之前需要安装Python3来安装这个工具。不过,现在很多Linux发行版的默认软件仓库中都有Python3,所以这个依赖并不难解决。安装Python3后,从duu的软件发布页面下载最新版本。$wgethttps://github.com/jftuga/duu/releases/download/2.20/duu.py用法要查看当前目录的大小,只需执行以下命令:$python3duu.py输出示例:可以看到从上面的图片输出来看,duu会显示当前目录下的文件个数,并以Byte、KB、MB为单位显示这些文件的总大小和每个文件的大小。如果需要查看某个目录的大小,只需要声明该目录的绝对路径即可:$python3duu.py/home/sk/Downloads/如果想要更详细的介绍,可以查看GitHub页面这个项目。以上就是du命令的五种替代方法,希望本文能对你有所帮助。就个人而言,我不会在这五个工具之间交替使用,更喜欢使用ncdu。请随时在下面的评论部分发表您对这些工具的评论。