2014-08-31 4 views
1

Я выполняю команду, чтобы узнать количество файлов в папке рекурсивно. Существуют и другие процессы, которые позволяют помещать файлы в эту папку.Ошибка при выполнении команды оболочки с использованием backtick в ruby ​​

Пример команды:

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

ответ

0

Можете ли вы привести пример прецедентов, которые вы пытаетесь решить? Если вы просто хотите узнать количество файлов в каталоге и подкаталогах, вы можете использовать что-то вроде:

Dir["/dump/**/*"].size 
Смежные вопросы