Будь ласка, прочитайте всю відповідь, перш ніж намагатись запустити sudo
Спробуйте бігти sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
Команда sudo виконує команди, які слідують за нею, із правами суперкористувача або кореня. Це повинно дозволити вам виконувати майже будь-що з командного рядка. Тим не менше, НЕ РОБІТЬ ЦЕ! Якщо ви запускаєте сценарій на своєму комп’ютері і вам не потрібен для доступу до основних компонентів вашої операційної системи (я думаю, ви цього не робите, оскільки ви викликаєте скрипт на щось у вашому домашньому каталозі (~ /)) тоді він повинен працювати з вашого домашнього каталогу, тобто:
~/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>