如何在 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的虚拟环境