xdg-打开多个不带扩展名的文件

时间:2019-02-25 00:18:28

标签: xdgutils

我想使用以下代码用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有什么问题?

1 个答案:

答案 0 :(得分: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-from-terminal/