Находить. -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
Другие вопросы по тегам