AndreBenHanouによる「PracticalRubyforSystem Administration」を読んでいます。これは、1KBを超えるサイズのディレクトリ内のすべてのファイルをリストし、変更日でソートしたワンライナーを備えています。
ruby -e 'puts Dir["*"].find { |f| File.size(f) > 1024 }.sort_by{|f| File.mtime(f)}'
select
の代わりにすべきだと思いますfind
。
のドキュメントによるとfind
、ブロックがfalseではない最初のものを返します。したがって、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 $
誰かが作者が間違っていることを確認できますか、それとも私はただ愚かです。