粗略地说,我想做的事情相当于狂欢的:
find . -name "*portal*" -type f -size +100k
我试过了:
Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {Size -gt 10 }
Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {Length -gt 10 }
Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {$_.size -gt 100 }
由于我不确定使用了哪些单位,所以数字故意设得很低。
但什么也没有返回。
答案1
ls
、dir
、gci
是 和 的别名Get-ChildItem
,可以代替使用。Length
不使用size
。- 在
where
或?
(的别名Where-Object
)中不{}
使用长度,在花括号内使用?{$_.Length -gt 10kb}
- 后缀
kb
、mb
、gb
和直接跟在数字(整数/浮点数)tb
后面pb
会自动扩展为 1024 的倍数(大小写无关紧要)
PoSh 02:25:10 C:\> 1kb
1024
PoSh 02:25:18 C:\> 1mb
1048576
PoSh 02:25:29 C:\> 1gb
1073741824
PoSh 02:25:34 C:\> 1tb
1099511627776
PoSh 02:25:40 C:\> 1pb
1125899906842624
这些是有效的
Get-ChildItem -Filter "*portal*" -Recurse -File | where Length -gt 10kb
Get-ChildItem -Filter "*portal*" -Recurse -File | where-object {$_.Length -gt 10mb }
Get-ChildItem -Filter "*portal*" -Recurse -File | ? Length -gt 1gb