我正在阅读 Andre Ben Hanou 的“Practical Ruby for System Administration”,它有一个单行程序,列出了一个目录中大小大于 1KB 的所有文件,然后按修改日期排序。
ruby -e 'puts Dir["*"].find { |f| File.size(f) > 1024 }.sort_by{|f| File.mtime(f)}'
我认为它应该select
代替find
.
根据文档find
,它返回块不为假的第一个。因此,find
在任何情况下都不会返回文件列表。就像书中的第 19 页,我对 Ruby 完全陌生,我认为作者是错误的,因为书中的命令已经给了我一个错误。
shadyabhi@archlinux /tmp $ ruby -e 'puts Dir["*"].find { |f| File.size(f) > 1024 }.sort_by{|f| File.mtime(f)}'
-e:1:in `<main>': undefined method `sort_by' for "mysql-security-excerpt-5.1-en.pdf":String (NoMethodError)
shadyabhi@archlinux /tmp $
任何人都可以确认作者是错误的还是我只是愚蠢的?