在编写 shell 脚本时,我想更改它们的权限(主要是可执行文件在 Sublime Text 2 中,您可以:
我怎样才能做到这一点?
答案1
以下是当前正在编辑的文件的通用权限编辑命令。有关插件和编辑 Sublime Text 2 菜单的更详细说明,请参阅这个帖子。
它将添加更改模式命令编辑菜单。选择后,系统会要求用户输入 chmod 的有效参数字符串(例如u+rwx
或755
;默认值是当前设置的 4 位八进制权限字符串,如0644
),然后将其应用于正在编辑的文件。
选择工具 » 新插件,插入以下内容并保存chmod.py
为~/Application Support/Sublime Text 2/Packages/User/
:
import sublime, sublime_plugin, subprocess
def chmod(v, e, permissions):
subprocess.call( [ "chmod", permissions, v.file_name() ] )
def stat(filename):
proc = subprocess.Popen( [ "stat", "-f", '%Mp%Lp', filename ], stdout=subprocess.PIPE )
return str(proc.communicate()[0]).strip()
class ChangeModeCommand(sublime_plugin.TextCommand):
def run(self, edit):
if sublime.platform() != 'osx':
return
fname = self.view.file_name()
if fname == None:
sublime.message_dialog("You need to save this buffer first!")
return
perms = stat(fname)
def done(permissions):
chmod(self.view, edit, permissions)
sublime.active_window().show_input_panel(
"permissions to apply to the file " + fname + ": ", perms, done, None, None)
要为此命令插入菜单项,请将以下内容添加到~/Application Support/Sublime Text 2/Packages/User/Main.sublime-menu
,如果文件已存在,则与现有文件内容合并:
[
{
"id": "edit",
"children":
[
{"id": "wrap"},
{ "command": "change_mode" }
]
}
]
答案2
它基本上也在 Linux 下运行,但是stat
命令的工作方式不同,并且显示了许多不需要的信息。
stat -c %a filename
将会执行并返回类似“644”的内容。