находить . -name & ldquo; documents.html & rdquo; | 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 {} + приводит к той же ошибке [ 115]

Почему? find передает символ кавычки в xdg-open? Я не могу понять это.

0
задан 8 May 2019 в 18:22

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
0
ответ дан 8 May 2019 в 18:22

Другие вопросы по тегам:

Похожие вопросы: