我是 Ubuntu 中终端的新手,我想知道如何在输入整个路径时打开文件“armored.jpg”。
例如,如果我输入cd ~/Pictures/Wallpapers/test\ x/
然后输入xdg-open armored.jpg
当前目录,它就会打开图片。
但是当我输入:
cd ~/Pictures/Wallpapers/test\ x/ xdg-open armored.jpg
或者
cd ~/Pictures/Wallpapers/test\ x/armored.jpg
或者
cd ~/Pictures/Wallpapers/test\ x/armored
这是行不通的。
有人能解释一下这是为什么吗?我想知道我是否可以用下面的命令打开该文件:
cd ~/Pictures/Wallpapers/test\ x/**command goes here**/armored.jpg
谢谢
答案1
你可以这样做:
xdg-open ~/Pictures/Wallpapers/test\ x/armored.jpg
cd
意味着改变目录,所以本质上终端正在等待你想要改变到的目录的路径。
xdg-open
在默认应用程序中打开一个文件,但是当它打开文件时,它需要文件路径,您也可以xdg-open
在 GUI 中使用 nautilus(如果它是您的默认文件管理器)打开目录。
答案2
您应该运行该命令并将文件路径作为参数传递。如果您像这样重新排列命令,您的命令将起作用:
xdg-open ~/Pictures/Wallpapers/test\ x/armored.jpg
您在终端中使用的第一个单词是您要运行的命令(可以是程序、内置函数、函数等),所有其他单词都作为参数传递给该程序。在本例中,您要xdg-open
显示 JPG,因此您将首先输入命令,然后输入图片的路径。
答案3
您可以使用双 & 符号。例如:
cd ~/Pictures/Wallpapers/test\ x/ && xdg-open armored.jpg
这将执行第一个命令,如果第一个命令成功,则转到第二个命令。
或者你可以这样做:
cd ~/Pictures/Wallpapers/test\ x/; xdg-open armored.jpg
无论第一个命令是否失败,它都会运行第一个命令,然后运行第二个命令。
答案4
cd ~/Pictures/Wallpapers/test\ x/ xdg-open armored.jpg
如果您运行此命令,终端会将整个命令cd
视为一个目录,如果命令中包含任何空格,则会中断并丢弃空格后的部分。在这种情况下,上述命令只会让您进入目录~/Pictures/Wallpapers/test\ x
。如果您确实想使用 xdg-open 打开文件,则需要像下面这样中断命令。
cd ~/Pictures/Wallpapers/test\ x/; xdg-open armored.jpg
无论第一个命令是否成功,终端都会解析第二个命令(即;之后)。
例子:
$ cd ~/Pictures/Wallpapers/test\ x/; xdg-open armored.jpg
bash: cd: /home/avinash/Pictures/Wallpapers/test x/: No such file or directory
gvfs-open: armored.jpg: error opening location: Error when getting information for file '/home/avinash/armored.jpg': No such file or directory
或者
cd ~/Pictures/Wallpapers/test\ x/ && xdg-open armored.jpg
只有第一个命令成功结束时,终端才会解析第二个命令。
例子:
$ cd ~/Pictures/Wallpapers/test\ x/ && xdg-open armored.jpg
bash: cd: /home/avinash/Pictures/Wallpapers/test x/: No such file or directory