Итак, я наблюдаю за java программой для взаимодействия с файловой системой. Java Сама программа не может запускаться от имени суперпользователя. Я создал специального пользователя для этой программы и дал ему некоторые особые привилегии для запуска некоторых команд без пароля (через файл visudo).
Так что я хотел бы проверить, существует ли файл. Я использовал:
if(f.exists() && !f.isDirectory())
, но проблема в том, что это не получается, если я проверяю, существуют ли файлы, защищенные от чтения / записи, или они принадлежат другому пользователю.
Именно поэтому мне нужно использовать bash. например, когда я получаю информацию о файле, я использую следующее:
String[] command = new String[] { "sudo", "stat", filepath, "-c", "%F@@%s@@%U@@%G@@%X@@%Y@@%Z" };
process = runtime.exec(command);
, а затем просто анализирую вывод.
Например, для перемещения файла я использую это:
String[] command = new String[] {
"sudo",
"-u",
user,
"mv",
source,
target
};
Так что теперь я ищу способ получить простой ответ истина / ложь при проверке, существует ли файл.
Я думаю, я мог бы использовать команду find
или что-то подобное?