используйте команду attr linux из программы Java - PullRequest
1 голос
/ 06 июня 2011

Я хочу прикрепить метаданные к файлу в файловой системе Unix. Команда attr позволяет мне сделать это, но синтаксис команды требует, чтобы путь к присоединенной переменной был в двойных кавычках.

attr -s outpipe0 "/mnt/FUse/FileB" FileA

как я могу использовать System.Runtime.exec в Java для запуска вышеуказанной команды. Всякий раз, когда я пытаюсь запустить с использованием аргумента массива строк, я должен дать выше "/ mnt / FUse / FileB" , который вызывает проблемы в Java-программе, поскольку он рассматривает двойные кавычки как конец строки в Java. Я в основном хочу отправить строковый аргумент, который сам по себе имеет двойные кавычки.

Может кто-нибудь предложить обходной путь.

Спасибо

1 Ответ

2 голосов
/ 06 июня 2011

Вы можете избежать кавычек внутри вашей буквенной строки в Java, например:

"\"/mnt/FUse/FileB\""

Это поможет решить вопрос о том, как включить двойные кавычки в строку, но я сомневаюсь, что это решит вашу программу,Это потому, что я сомневаюсь, что программа attr действительно хочет (или принимает) двойные кавычки.Вместо этого оболочка их ест.Например, если команда, которую вы вводите в оболочке, является той, которую вы упомянули, оболочка будет использовать двойные кавычки, прежде чем аргументы будут переданы в attr.Поэтому я сомневаюсь, что вам вообще нужны двойные кавычки (но если это так, см. Выше).

...