Пожалуйста, прочтите весь ответ, прежде чем пытаться запустить sudo
Попробуйте бежать sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
Команда sudo выполняет следующие за ней команды с привилегиями суперпользователя или root. Это должно позволить вам выполнять почти все из командной строки. Тем не менее, НЕ ДЕЛАЙТЕ ЭТОГО! Если вы запускаете сценарий на своем компьютере и не нуждаетесь в нем для доступа к основным компонентам вашей операционной системы (я предполагаю, что это не так, поскольку вы вызываете сценарий для чего-то внутри своего домашнего каталога (~ /)), тогда он должен запускаться из вашего домашнего каталога, то есть:
~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
Переместите его в ~ / или подкаталог и выполните оттуда. У вас никогда не должно быть проблем с разрешениями, и не будет риска получить доступ или изменить что-либо критически важное для вашей ОС.
Если у вас по-прежнему возникают проблемы, вы можете проверить права доступа к файлу, запустив его ls -l
в том же каталоге, что и скрипт ruby. У вас получится что-то вроде этого:
$ ls -l
total 13
drwxr-xr-x 4 or019268 Administ 12288 Apr 10 18:14 TestWizard
drwxr-xr-x 4 or019268 Administ 4096 Aug 27 12:41 Wizard.Controls
drwxr-xr-x 5 or019268 Administ 8192 Sep 5 00:03 Wizard.UI
-rw-r--r-- 1 or019268 Administ 1375 Sep 5 00:03 readme.txt
Вы заметите, что файл readme.txt говорит -rw-r--r--
слева. Это показывает разрешения для этого файла. 9 символов справа можно разделить на группы по 3 символа «rwx» (чтение, запись, выполнение). Если я хочу добавить права на выполнение к этому файлу, я бы выполнил, chmod 755 readme.txt
и эта часть разрешений стала бы rwxr-xr-x
. Теперь я могу выполнить этот файл, если захочу, запустив ./readme.txt
(./ указывает bash искать в текущем каталоге нужную команду, а не искать переменную $ PATH).
schluchc намекает на просмотр страницы руководства по chmod, сделайте это, запустив man chmod
. Это лучший способ получить документацию по данной команде,man <command>