Находить. -name "documents.html" | xargs xdg-open
Команда (bash) find . -name "documentation.html" | xargs xdg-open
находит файл и передает его путь в xdg-open, но выдает ошибки xdg-open:
xdg-open: unexpected argument './distribution/docs/target/docs/html/documentation.html'
Команда find . -name "documentation.html" -exec xdg-open {} +
приводит к той же ошибке
Зачем? Является find
передать символ кавычки в xdg-open? Я не могу понять это.
1 ответ
Это может быть вызвано дополнительными символами, добавленными в xargs или ошибками (то есть отказано в разрешении для определенных директорий).
Если вы хотите передать только один файл в xargs, вы можете попробовать это:
find -type f -name "documentation.html" 2> /dev/null | head -n 1 | xargs -n 1 xdg-open
или же
xdg-open `find -type f -name "examples.desktop" 2> /dev/null`
Другим решением будет цикл while:
find -type f -name "examples.desktop" 2> /dev/null | while read -r FILE ; do xdg-open "$FILE" ; done