0

我想xdg-open用以下代码打开多个文件

me@host:~/Downloads$ find . -type f -iregex "./[^.]*"
./3ed090f2dde306e5e9f7200f1022a2c3
./ebd9863a73a5ef22344550a650d169a1
./edbdb765d87586fda75c4287a1e9ea1e
./d9e39bfe0a907ffb580a975d8c8719d2
./2b9cc942c04a8063bd8d4d8fd98814d9
./f5938dd24367ffaf766ef99928660786
./a51accbbf14c8a05cb82caa7d8bec0c6
./0820fb50b412f8e40f63b3bea12e9fb5
./53ef22110569d46b445a1e908a7ae88f
./61ee21f83a33b91674926daf70c34947

尝试打开它们

me@host:~/Downloads$ find . -type f -iregex "./[^.]*" | xargs xdg-open 
xdg-open: unexpected argument './ebd9863a73a5ef22344550a650d169a1'
Try 'xdg-open --help' for more information.
me@host:~/Downloads$ find . -type f -iregex "./[^.]*" -print0| xargs -0  xdg-open 
xdg-open: unexpected argument './ebd9863a73a5ef22344550a650d169a1'
Try 'xdg-open --help' for more information.

我使用 xdg-open 有什么问题?

4

1 回答 1

0

您的问题是xdg-open不接受多个参数,这意味着您只能使用它打开一个文件。这似乎是设计使然,因为在不同的发行版中打开文件有不同的底层命令,其中一些只接受一个参数。

如果您正在设计特定于发行版的脚本,那么您可能想尝试找出 xdg-open 调用的命令。在 Ubuntu MATE 16.04 中它是gvfs-open,它又接受多个参数。我通过将格式错误的文件路径提供给 xdg-open 发现了这一点,因为我(再次)试图用它打开两个文件。我使用的畸形只是两个文件及其路径,用逗号分隔,没有空格。这被 xdg-open 接受,但 gvfs-open 抱怨作为回报,暴露了自己。

如果您正在设计独立于分发的脚本,那么您可能想从这里寻找解决方案:https ://askubuntu.com/questions/356650/how-to-open-multiple-files-with-the-default-program -从终端/

于 2020-02-12T07:52:05.277 回答