我怎样才能一次性输出所有文件/目录(按大小排序),包括隐藏文件/目录(名称以点开头的文件/目录)?
经过目录的大小,我的意思是目录和其所有子目录树中所有文件大小的总和。
区别在于我如何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>
用zip
、png
、jpg
或最大文件所具有的任何文件扩展名来替换。
例子:
du -ah | sort -h | grep .zip
du -ah | sort -h | grep .png
参考
- Linux
du
手册页(磁盘使用情况) - GNU 核心实用程序
- 在正则表达式中,插入符号 (
^
) 表示不是 - 评论如何包含隐藏文件和非隐藏文件
- 实用程序语法 | 准则 10,选项结束
- 磁盘
ncdu
使用情况分析器 - 答案推荐
ncdu
- (列出
ls
目录内容)Linux 手册页 - 如何在命令行中反转输出
- 如何仅显示大小超过 1 GB 的文件夹
- 如何按大小排序列出所有文件
1
我很感激我的解决方案归功于此评论.--
论点标志着选择的结束。对于非常大的文件/文件夹,
该du
命令可能会非常慢。考虑使用ncdu
命令。
要在 Debian 衍生产品(包括 Ubuntu)上安装,请运行:sudo apt install -y ncdu
。
在 Arch Linux(包括 MSYS2)上,请运行:yes | pacman -Syu ncdu
。
要使用它,请键入ncdu
,然后按↵。
2
国旗-h
ls
以人性化的方式输出文件大小。
该-S
标志按以下顺序对输出进行排序:减少大小。
管道| grep '^-'
不包括目录和符号链接。
管道| tac
反转输出。
3 当当前目录的大小是几兆字节而不是几千兆字节时,这更有可能引起人们的兴趣。