我需要一个命令行实用程序(最好适用于 Windows 10,但 Linux(Debian)也可以)来根据子目录大小对文件夹进行排序。例如,我有多个 Steam 游戏的模组,每个模组都有自己的\sounds
子目录(有些模组可能没有这个子文件夹,因此应该将它们算作零大小),所以我想根据\sounds
大小对模组进行排序。
文件夹结构如下:
SteamWorkshop/GameID
mod1
sounds
folder1
file1.wav
file2.wav
folder2
file3.wav
file4.wav
scripts
etc
mod2
sounds
file5_nosubfolder.wav
scripts
etc
mod3
scripts
etc
请注意,有些sounds
文件夹可能有子目录,有些文件夹可能只有文件,或者根本没有文件,或者模块可能sounds
根本没有文件夹。所以我需要递归计算所有文件和子文件夹的总大小,并根据声音大小列出所有模块,如下所示:
mod1 sounds: 1.234MB
mod2 sounds: 0.123MB
mod3 sounds: 0MB
我甚至不知道哪个命令可以执行此操作。/ grep
??findstr
ls
任何帮助都将不胜感激!
这是一个使用 Ubuntu 中提供的工具的示例,但这个想法是通用的,可以用其他工具实现。即使在 Ubuntu 中,您可能也希望根据自己的需求调整解决方案。
将自己置于要分析的目录的父目录中。 在您的例子中,要分析的目录是
GameID
,父目录是SteamWorkshop
。复制您要分析的整个目录。使用硬链接或重新链接(如果可能)。
在副本中删除所有你不想计算的内容:
上述命令故意保留所有目录不变,因此在下一步中您将能够看到整个目录结构。
分析剩下的内容:
完成后删除副本: