(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