如何按大小排序输出所有文件/文件夹,包括隐藏文件/文件夹

如何按大小排序输出所有文件/文件夹,包括隐藏文件/文件夹


我怎样才能一次性输出所有文件/目录(按大小排序),包括隐藏文件/目录(名称以点开头的文件/目录)?

经过目录的大小,我的意思是目录和其所有子目录树中所有文件大小的总和。

区别在于我如何du -h按大小对输出进行排序?我请求的输出包括全部当前目录中的文件和目录 –无论是否隐藏

参考

答案1

我如何才能输出所有文件/目录(按大小排序,包括隐藏文件/目录)?

使用du(磁盘使用情况)命令,它是GNU 核心实用程序1

du -hs -- * .[^.]* | sort -h

.[^.]* 正则表达式确保包含隐藏文件和目录。

列表仅隐藏文件和目录按大小递增排序:

du -hs -- .[^.]* | sort -h

列表仅限目录– 无论是否隐藏 – 按大小递增排序:

du -hs -- */ .[^.]*/ | sort -h

仅列表文件在当前目录中

列表全部文件按大小递增排序:2

ls -AhlS | grep '^-' | tac

仅列表文件按大小递增排序:

ls -hldS .* | grep '^-' | tac

仅列表常规的(非隐藏)文件,按大小递增排序:

ls -lS | grep '^-' | tac

列出文件递归地– 在所有子目录树中

问题中没有问到这个问题,但有时您可能希望列出子目录树(包括当前目录)中的所有文件,并按大小排序。3

du -ah | sort -h

输出将是子目录和文件的列表(可能很长)。要将其限制为仅文件,您需要知道最大文件的文件扩展名是什么(通过查看上述命令的输出)。

du -ah | sort -h | grep .<file-extension>

在这里您应该<file-extension>zippngjpg或最大文件所具有的任何文件扩展名来替换。

例子:

du -ah | sort -h | grep .zip
du -ah | sort -h | grep .png

参考


1 我很感激我的解决方案归功于此评论.--论点标志着选择的结束。对于非常大的文件/文件夹,
du命令可能会非常慢。考虑使用ncdu命令。
要在 Debian 衍生产品(包括 Ubuntu)上安装,请运行:sudo apt install -y ncdu
在 Arch Linux(包括 MSYS2)上,请运行:yes | pacman -Syu ncdu
要使用它,请键入ncdu,然后按

2 国旗-hls以人性化的方式输出文件大小。
-S标志按以下顺序对输出进行排序:减少大小。
管道| grep '^-'不包括目录和符号链接。
管道| tac 反转输出

3 当当前目录的大小是几兆字节而不是几千兆字节时,这更有可能引起人们的兴趣。

相关内容