Я новичок в использовании терминала в Ubuntu, и мне было интересно, как я могу открыть файл «armored.jpg», когда я набираю весь путь.
Например, если я набираю , а затем введите 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
Спасибо
Вы должны запустить команду и передать путь к файлу в качестве аргумента. Ваши команды будут работать, если вы изменили их так:
xdg-open ~/Pictures/Wallpapers/test\ x/armored.jpg
Первое слово, которое вы используете в терминале, - это команда, которую вы пытаетесь запустить (которая может быть программой, встроенной функцией, и т. д.), и все другие слова передаются в эту программу в качестве аргументов. В этом случае вы говорите, что xdg-open отображает ваш JPG, поэтому сначала вы будете вводить команду, а затем путь к изображению.
Вы можете использовать двойные амперсанды. Например:
cd ~/Pictures/Wallpapers/test\ x/ && xdg-open armored.jpg
Это выполнит первую команду и переместится ко второй, если первая будет успешной.
или вы могли бы сделать: [ ! d3]
cd ~/Pictures/Wallpapers/test\ x/; xdg-open armored.jpg
Который будет запускать первую команду, а затем вторую, будет ли первый сбой или нет.
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