2014-08-31 82 views
1

我正在執行命令以遞歸方式查找文件夾中的文件數。還有其他一些將文件放入此文件夾的進程。在ruby中使用反引號執行shell命令時出錯

實施例的命令:

ls -1 -rt /dump > /segmentizer.out 2> /segmentizer.err 

有時它被返回錯誤(引發ArgumentError)和程序只是掛起在該點。以下是錯誤

negative string size (or size too big) 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.17/lib/active_support/core_ext/kernel/agnostics.rb:7:in ``' 

謝謝 Ananthram

+0

'ls'用於人類可讀輸出。 'find'用於遞歸搜索目錄並對這些文件執行操作。我懷疑你根本不需要Ruby(如果你構建了正確的'find'命令),但是如果你堅持使用它,那麼'find' stdlib可以輕鬆完成這種事情。 – Max 2014-09-01 12:06:41

回答

0

你能給你正在試圖解決的用例的例子嗎?如果您只想知道目錄和子目錄中的文件數量,可以使用類似於:

Dir["/dump/**/*"].size