PowerShell:如何获取最大文件(某种类型)的列表?

PowerShell:如何获取最大文件(某种类型)的列表?

获取最大的文件列表可能看起来像

gci -r|sort -descending -property length | select -first 10 name, length

如何添加特定的文件类型选择,例如 ascii 或格式化的 log/json/yaml 文件?

而仅选择年龄超过 30 天的选项可能也是一个好主意。

我的目标是积累过滤器:

  • 仅适用于文本文件(忽略任何其他文件)
  • 按大小排序
  • 可选:排序仅保留超过 30 天的记录
  • 保留并列出 10 个最大的。

我可以将这个需求与满足我所有需求的 Linux 命令行进行比较:

find . -type f -ctime +30 ! -executable -exec file {} + | grep -i ASCII | du -ah | sort -rh | head -10

答案1

有人给了我一个解决方案

$refDate = (Get-Date).AddDays(-30).Date
# fill the list of binary filetypes that are most likely found
$binaries = '*.exe', '*.bin', '*.png', '*.gif', '*.jpg', '*.dll'  # I will complete here known extensions 

Get-ChildItem -File -Recurse -Exclude $binaries | 
    Where-Object {$_.LastWriteTime -lt $refDate} | 
    Sort-Object Length -Descending |
    Select-Object -First 10 | 
    Select-Object Name, Length

这看起来不错,可以解决

相关内容