Нашел, что это сложно; Имея следующий код:
String cmd = "find /home/folder/ -type f";
Runtime run = Runtime.getRuntime() ;
Process pr = run.exec(cmd);
pr.waitFor();
Я pr.getInputStream()
и получу правильный результат find
, нет проблем. Однако, если я хочу быть более конкретным, и моя команда будет cmd = "find /home/folder/ -type f -name somefile*";
, поток ввода будет пустым.
Теперь я подумал, что это будет что-то, связанное с расширениями строк, выполняемыми интерактивной оболочкой (я полагаю, что она не будет использоваться в этом случае). В этом случае *
не будет иметь смысла, а find
будет искать файлы, которые действительно называются "*" (что-то вроде \*
). Поэтому я попытался указать мою команду как sh -c "find /home/folder/ -type f -name somefile*"
. Но это тоже не сработало ...
Что мне не хватает?
спасибо,
е.
Ps .: Это AIX box с Java JVM от IBM.