Терминальная команда cd не работает из сценария Scala

Мне нужно запустить команду оболочки из сценария Scala, и я использую для этого следующий фрагмент кода:

import scala.sys.process.{Process, ProcessIO}

val command = "ls /tmp"
val process = Process(command)

val processIO = new ProcessIO(_ => (),
    stdout => scala.io.Source.fromInputStream(stdout).getLines.foreach(println),
    _ => ())
process.run(processIO)

Код работает нормально. Мне интересно, почему я получаю

java.io.IOException: Cannot run program "cd": error=2, No such file or directory

, как только я меняю команду на cd /tmp && ls, что эквивалентно IMO ls /tmp?

5
задан nab 15 May 2012 в 18:36
поделиться