Lea la respuesta completa antes de intentar ejecutar con sudo
intente ejecutar sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
El comando sudo ejecuta las órdenes que le siguen con 'superusuario' o privilegios de 'root'. Esto debería permitirle ejecutar casi cualquier cosa desde la línea de comando. Dicho esto, ¡NO HAGA ESTO! Si está ejecutando un script en su computadora y no lo necesita para acceder a los componentes centrales de su sistema operativo (supongo que no lo está, ya que está invocando el script en algo dentro de su directorio personal (~ /)) , entonces debería estar en funcionamiento desde su directorio principal, es decir:
~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
moverlo a ~/o un subdirectorio y ejecutar desde allí. Nunca debe tener problemas de permisos allí y no habrá un riesgo de que acceda o modifique nada crítico para su sistema operativo.
Si aún tiene problemas, puede verificar los permisos en el archivo ejecutando ls -l
mientras está en el mismo directorio que el script de ruby. Obtendrá algo como esto:
$ 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
Notará que el archivo Léame.El archivo txt dice -rw-r--r--
a la izquierda. Esto muestra los permisos para ese archivo. Los 9 caracteres de la derecha se pueden dividir en grupos de 3 caracteres de 'rwx' (leer, escribir, ejecutar). Si deseo agregar derechos de ejecución a este archivo, ejecutaría chmod 755 readme.txt
y esa porción de permisos se convertiría en rwxr-xr-x
. Ahora puedo ejecutar este archivo si quiero ejecutar ./readme.txt
(./ le dice al bash que busque en el directorio actual el comando deseado en lugar de buscar la variable $ PATH).
schluchc alude a mirar la página del manual para chmod, haga esto ejecutando man chmod
. Esta es la mejor manera de obtener documentación sobre un comando dado, man <command>
¡Gracias! Pero, ¿dónde está el directorio de inicio (~ /)? ¿Significa escritorio? –
El shell puede decirle que con 'echo ~', típicamente '/ Users/$ USER'. El escritorio es solo un directorio debajo de eso. Las GUI de Unix ocultan el directorio de inicio, pero aún está allí. –
Puede obtener la ruta a su directorio de inicio ejecutando 'echo $ HOME'. Es probable que se parezca a/Users/ o posiblemente/Users/ –