2014-08-31 5 views
1

폴더의 파일 수를 재귀 적으로 찾는 명령을 실행 중입니다. 파일을이 폴더에 보관하는 다른 프로세스가 있습니다.루비에서 백틱을 사용하여 쉘 명령을 실행하는 중 오류가 발생했습니다.

예 명령 :

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 
관련 문제