Hen*_*с м 15

\n

如何输出按大小排序的所有文件/目录,包括隐藏的文件/目录?

\n
\n

使用du(磁盘使用)命令,它是GNU coreutils的一部分:1

\n
du -hs -- * .[^.]* | sort -h\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

列出隐藏的文件和目录,按大小递增排序:

\n
du -hs -- .[^.]* | sort -h\n
Run Code Online (Sandbox Code Playgroud)\n

仅列出目录\xe2\x80\x93 无论是否隐藏 \xe2\x80\x93 按大小递增排序:

\n
du -hs -- */ .[^.]*/ | sort -h\n
Run Code Online (Sandbox Code Playgroud)\n

仅列出当前目录中的文件

\n

列出所有文件,按大小递增排序:2

\n
ls -AhlS | grep \'^-\' | tac\n
Run Code Online (Sandbox Code Playgroud)\n

仅列出隐藏文件,按大小递增排序:

\n
ls -hldS .* | grep \'^-\' | tac\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
ls -lS | grep \'^-\' | tac\n
Run Code Online (Sandbox Code Playgroud)\n

递归列出所有子目录树中的 \xe2\x80\x93文件

\n

问题中没有询问这一点,但有时您可能想要列出子目录树(包括当前目录)中的所有文件,按大小排序。3

\n
du -ah | sort -h\n
Run Code Online (Sandbox Code Playgroud)\n

输出将是子目录和文件的列表(可能非常长)。\n要将其限制为仅文件,您需要了解最大文件的文件扩展名(通过查看上面的命令)。

\n
du -ah | sort -h | grep .<file-extension>\n
Run Code Online (Sandbox Code Playgroud)\n

此处您应该替换<file-extension>zippngjpg或最大文件具有的任何文件扩展名。

\n

例子:

\n
du -ah | sort -h | grep .zip\n
Run Code Online (Sandbox Code Playgroud)\n
du -ah | sort -h | grep .png\n
Run Code Online (Sandbox Code Playgroud)\n

参考

\n\n
\n \n

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

\n

2 \n-h标志ls以人类可读的方式输出文件大小。
\n该标志按大小递减的-S顺序对输出进行排序。\n管道不包括目录和符号链接。\n管道反转输出
| grep \'^-\'
| tac

\n

3 \n当当前目录的大小是几兆字节而不是千兆字节时,这更可能令人感兴趣。

\n
\n


归档时间:

查看次数:

9018 次

最近记录:

1 年,10 月 前