如何查找目录结构中的10个最大文件?如何查找目录结构中的10个最大文件
回答
试试这个脚本
gci -re -in * |
?{ -not $_.PSIsContainer } |
sort Length -descending |
select -first 10
击穿:
的过滤块 “?{ -not $_.PSIsContainer }
” 指的是过滤掉的目录。排序命令将按降序排列所有剩余的条目。 SELECT子句将只允许前10个通过,因此将成为最大的10
这可以简化一点,因为目录没有长度:
gci . -r | sort Length -desc | select fullname -f 10
+1我将来会使用它(少打字)。 – 2009-05-02 01:38:42
加'。'甚至不需要。由于默认路径是当前目录,因此可以将前面部分简化为“gci -r | ...”。 – 2009-05-02 06:02:30
如果你关心了一下结果集的格式,这里有更好看的输出两个功能:
#Function to get the largest N files on a specific computer's drive
Function Get-LargestFilesOnDrive
{
Param([String]$ComputerName = $env:COMPUTERNAME,[Char]$Drive = 'C', [Int]$Top = 10)
Get-ChildItem -Path \\$ComputerName\$Drive$ -Recurse | Select-Object Name, @{Label='SizeMB'; Expression={"{0:N0}" -f ($_.Length/1MB)}} , DirectoryName, Length | Sort-Object Length -Descending | Select-Object Name, DirectoryName, SizeMB -First $Top | Format-Table -AutoSize -Wrap
}
#Function to get the largest N files on a specific UNC path and its sub-paths
Function Get-LargestFilesOnPath
{
Param([String]$Path = '.\', [Int]$Top = 10)
Get-ChildItem -Path $Path -Recurse | Select-Object Name, @{Label='SizeMB'; Expression={"{0:N0}" -f ($_.Length/1MB)}} , DirectoryName, Length | Sort-Object Length -Descending | Select-Object Name, DirectoryName, SizeMB -First $Top | Format-Table -AutoSize -Wrap
}
似乎它不回答原来的问题。 – 2014-03-14 13:06:17
我已经blogged about a similar problem,我想找到一个目录中的最大文件和所有子目录:在一个不错的易于理解的格式(整个C盘为例),以及名单大小(GB ,MB和KB)。这里的PowerShell的功能我用列出所有文件在一个不错的出GridView的排序按大小:
Get-ChildItem -Path 'C:\SomeFolder' -Recurse -Force -File
| Select-Object -Property FullName
,@{Name='SizeGB';Expression={$_.Length/1GB}}
,@{Name='SizeMB';Expression={$_.Length/1MB}}
,@{Name='SizeKB';Expression={$_.Length/1KB}}
| Sort-Object { $_.SizeKB } -Descending
| Out-GridView
输出到GridView的是不错的,因为它可以让您轻松地过滤结果,并通过滚动。这是更快的PowerShell v3版本,但博客文章还显示了较慢的PowerShell v2兼容版本。
当然,如果你只想要前10个最大的文件,你可以添加一个-First 10
参数给Select-Object调用。
基本一个获得前10名最大的文件到本地目录:
LS -S -l |头-n 10
,或者您可以使用
杜-a /家/ directory | sort -n -r | head -n 10
- 1. 如何遍历目录结构来查找文件
- 2. 如何在子目录中找到最大的文件?
- 3. 查找10个主题的最大值
- 4. 查找大树结构中相同的目录树
- 5. 如何使用ASP列出目录的10个最新文件
- 6. 在每个子目录中查找最大的文件并将文件移动到新目录
- 7. 为特定用户查找最大的文件和目录
- 8. C - 如何查找结构的大小?
- 9. 在Linux中查找一个目录的最大深度
- 10. 如何查找大型数组文件gnuplot中的最大条目?
- 11. 总结目录中的文件大小
- 12. 在数据结构中查找最大值最大值和最大键值
- 13. Web项目的文件夹/目录结构 - 最佳实践
- 14. 在Git中查找某个文件的最后10位作者
- 15. 查找文件中的最大数字
- 16. 如何根据大小查询前10个目录?
- 17. PYTHON - 查找最大每10个整数的数组中的
- 18. 如何在给定目录中查找文件并忽略几个子目录
- 19. 查找一个目录的大小
- 20. 查找目录中文件的名称
- 21. 如何查找文档目录中的文件夹信息
- 22. 如何知道递归目录结构中的文件路径
- 23. Perl:在大型目录结构中搜索pdf文件recursivley
- 24. 如何在目录层次结构中输出每个文件和文件夹
- 25. 查找pwd中所有目录的目录中的文件数
- 26. 在目录中查找最旧的文件(递归)
- 27. 如何在目录中找到最新的可执行文件
- 28. 如何在目录中找到最新创建的文件夹
- 29. 如何在目录中找到最新的文件?
- 30. 如何在目录(python)目录中找到最近修改过的文件夹?
这太好了----我想出了如何使用format-table格式化最终结果,但是我没有清楚的是语法?{}和$ _我猜这些是一些语句结构的缩写? – 2009-04-28 14:20:26
?{}语法是where-obj的简写这是一个过滤器表达式。本质上,PowerShell会将每个对象都传递给$ _中的?{}子句。如果返回值为$ true,则该对象将继续沿着管道向下,否则将被过滤掉。 – JaredPar 2009-04-28 14:28:13
这是内存密集型的命令,并且我猜想正在搜索内容的大小。 – Ankush 2012-06-11 10:56:39