【问题标题】:Error while executing a shell command using backtick in ruby在 ruby​​ 中使用反引号执行 shell 命令时出错
【发布时间】:2014-08-31 21:04:50
【问题描述】:

我正在执行一个命令以递归方式找出文件夹中的文件数。还有其他进程不断将文件放入此文件夹。

示例命令:

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 ``'

谢谢 火影

【问题讨论】:

  • ls 用于人类可读的输出。 find 用于递归搜索目录并对文件执行操作。我怀疑你根本不需要 Ruby(如果你构造了正确的 find 命令),但如果你坚持使用它,那么 find stdlib 可以轻松完成这类事情。

标签: ruby backticks


【解决方案1】:

您能否举例说明您尝试解决的用例?如果您只想知道目录和子目录中的文件数,可以使用类似:

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

【讨论】:

    猜你喜欢
    • 2019-03-02
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多