我是新来的mac与不熟悉的终端命令,我把dvtcolorconvert.rb文件的根目录我的卷,这个ruby脚本可以转换xcode 3主题到xcode 4主题格式,这是xxxxxxxx.dvtcolortheme。然后在终端上运行脚本/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme,但总是提示“Permission denied”。这有什么问题吗?谁能帮我解决这个问题?谢谢。
dvtcolorconvert.rb
xxxxxxxx.dvtcolortheme
/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
xe55xuns1#
你有没有给自己执行剧本的权利?下面的命令作为超级用户将为您做这件事:sudo chmod 755 'filename'有关详细信息,请阅读chmod的手册页。
sudo chmod 755 'filename'
pokxtpni2#
在尝试使用sudo运行之前,请阅读整个答案尝试运行sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolorthemesudo命令以“超级用户”或“root”权限执行后面的命令。这应该允许您从命令行执行几乎任何命令。也就是说,**不要这样做!**如果您正在计算机上运行脚本,并且不需要它来访问操作系统的核心组件(我猜你没有,因为你是在你的主目录(~/)中调用脚本),那么它应该从你的主目录运行,即:~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme将其移动到~/或子目录并从那里执行。您应该永远不会有权限问题,并且不会有它访问或修改任何对您的操作系统至关重要的内容的风险。如果你仍然有问题,你可以在ruby脚本所在的目录下运行ls -l来检查文件的权限。你会得到如下的结果:
sudo
sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
ls -l
$ 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>的文档的最佳方式
-rw-r--r--
chmod 755 readme.txt
rwxr-xr-x
./readme.txt
man chmod
man <command>
o4tp2gmn3#
在我的例子中,我在shebang中犯了一个愚蠢的错字。所以,如果其他人用胖手指绊倒了这个问题:产品编号:#!/usr/local/bin ruby我本想写的是:#!/usr/bin/env rubyZSH给出的模糊错误让我走上了错误的道路:ZSH:zsh: permission denied: ./foo.rbBash:bash: ./foo.rb: /usr/local/bin: bad interpreter: Permission denied
#!/usr/local/bin ruby
#!/usr/bin/env ruby
zsh: permission denied: ./foo.rb
bash: ./foo.rb: /usr/local/bin: bad interpreter: Permission denied
bfrts1fy4#
你应该以“超级用户”的身份运行脚本,只需要在命令前面添加“sudo”,并在提示时输入密码。所以试试看:
如果这不起作用,请尝试调整权限:
sudo chmod 755 /dvtcolorconvert.rb sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme
elcex8rz5#
在mac中以管理员模式运行
sudo su
5lwkijsr6#
在文件名之前使用源,,像我的文件,我想从终端运行是./jay/bin/activate所以我使用了"source ./jay/bin/activate"命令
./jay/bin/activate
"source ./jay/bin/activate"
wa7juj8i7#
检查Ruby脚本的权限(可能没有执行权限),主题文件和目录(以防它无法读取主题或试图在其中创建其他主题),* 和 * 运行脚本时您所在的目录(以防它在当前目录中创建临时文件而不是/tmp)。他们中的任何一个都可能让你伤心。
/tmp
7rfyedvj8#
试试这个
*chmod +xfilename.sh
8条答案
按热度按时间xe55xuns1#
你有没有给自己执行剧本的权利?
下面的命令作为超级用户将为您做这件事:
sudo chmod 755 'filename'
有关详细信息,请阅读chmod的手册页。
pokxtpni2#
在尝试使用
sudo
运行之前,请阅读整个答案尝试运行
sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
sudo命令以“超级用户”或“root”权限执行后面的命令。这应该允许您从命令行执行几乎任何命令。也就是说,**不要这样做!**如果您正在计算机上运行脚本,并且不需要它来访问操作系统的核心组件(我猜你没有,因为你是在你的主目录(~/)中调用脚本),那么它应该从你的主目录运行,即:
~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme
将其移动到~/或子目录并从那里执行。您应该永远不会有权限问题,并且不会有它访问或修改任何对您的操作系统至关重要的内容的风险。
如果你仍然有问题,你可以在ruby脚本所在的目录下运行
ls -l
来检查文件的权限。你会得到如下的结果:你会注意到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>
的文档的最佳方式o4tp2gmn3#
在我的例子中,我在shebang中犯了一个愚蠢的错字。
所以,如果其他人用胖手指绊倒了这个问题:
产品编号:
#!/usr/local/bin ruby
我本想写的是:
#!/usr/bin/env ruby
ZSH给出的模糊错误让我走上了错误的道路:
ZSH:
zsh: permission denied: ./foo.rb
Bash:
bash: ./foo.rb: /usr/local/bin: bad interpreter: Permission denied
bfrts1fy4#
你应该以“超级用户”的身份运行脚本,只需要在命令前面添加“sudo”,并在提示时输入密码。
所以试试看:
如果这不起作用,请尝试调整权限:
elcex8rz5#
在mac中以管理员模式运行
5lwkijsr6#
在文件名之前使用源,,
像我的文件,我想从终端运行是
./jay/bin/activate
所以我使用了
"source ./jay/bin/activate"
命令wa7juj8i7#
检查Ruby脚本的权限(可能没有执行权限),主题文件和目录(以防它无法读取主题或试图在其中创建其他主题),* 和 * 运行脚本时您所在的目录(以防它在当前目录中创建临时文件而不是
/tmp
)。他们中的任何一个都可能让你伤心。
7rfyedvj8#
试试这个
*chmod +xfilename.sh