如何在 PyCharm/IntelliJ 中自动“chmod”具有特定扩展名的文件?

Posted

技术标签:

【中文标题】如何在 PyCharm/IntelliJ 中自动“chmod”具有特定扩展名的文件?【英文标题】:How to automatically "chmod" a file in PyCharm/IntelliJ with a particular extension? 【发布时间】:2021-10-14 06:26:03 【问题描述】:

背景

我正在维护一个 repo,我在其中创建了许多包含微小代码 sn-ps 的小 bash 文件。 为了创建这些文件,我经常在 PyCharm/IntelliJ 中使用 Right Click -> New -> File 交互:

这些文件是使用rw-rw-r-- (664) 权限自动创建的。 所以每次我都必须启动一个终端,然后执行chmod 700 somefile.sh 让它们可执行。

问题

在 IntelliJ/PyCharm 中自动设置具有特定扩展名的文件的权限会很棒。 我不希望我的所有文件都是可执行的,只是扩展名为 .sh 的文件。 有没有办法配置它?

【问题讨论】:

有文件权限插件:plugins.jetbrains.com/plugin/16238-file-permissions。它是开源的,因此您可以修改它以在某些操作(如 VCS 更新)上自动执行它。 如果你使用 Git,这可以通过 Git 钩子自动化:***.com/a/22710807/104891。 plugins.jetbrains.com/plugin/11217-git-extended-update-index 插件声称在 git update-index 上支持 --chmod=+x。 谢谢@CrazyCoder!不是我想要的,因为我希望它们在添加到 git 之前是可执行的。然而,这并不是一个疯狂的开始;-)。赞成,因为它们是很好的建议。 【参考方案1】:

一个不优雅且可能存在问题的解决方案是在后台使用 bash 脚本检查特定目录的内容以查找特定文件名并在这些文件上应用 chmod 700

我强烈建议使用一个特殊目录 - 以尽量减少此脚本影响其他/意外文件的风险。

您需要将其设置为休眠几秒钟,以免占用过多的 CPU 时间。

它可能看起来像这样:

background_chmod.sh:

#!/bin/bash
FILESPEC="*.sh"
DIRPATH=/some/special/path/

while [ 0 ] :
do
    find $DIRPATH -name $FILESPEC -type f -exec chmod 700  \;
    sleep 10;  # tweak this to your requirements
done

然后,您可以将其放入您的 .bashrc 文件(如果您使用 bash),以便在您登录时执行。 .bashrc 中的附加行将是: /path_to_script/background_chmod.sh &

记住:

 chmod +x /path_to_script/background_chmod.sh

重要提示:我无法测试上述内容。请在实施之前对一些测试文件进行测试!使用风险自负!

【讨论】:

赞成,因为这有效并且您正确解决了风险和限制。不接受它,因为我希望有一个更优雅的解决方案。无论如何,你做出了高质量的贡献。谢谢!。

以上是关于如何在 PyCharm/IntelliJ 中自动“chmod”具有特定扩展名的文件?的主要内容,如果未能解决你的问题,请参考以下文章

pycharm / intellij - jupyter markdown 不渲染

PyCharm/ IntelliJ IDEA 运行配置使用 MFA 承担 AWS 角色

Intellij/Pycharm 无法调试 Python 模块

PyCharm/IntelliJ 中的红色下划线(未解决的引用)停止工作 - 在我的一些 Anaconda 项目中

virtualenv系列 · 打通virtualenvwrapper和PyCharm/IntelliJ IDEA的虚拟环境

如何在 amazon linux 中自动创建自动 777 到文件夹/文件