You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux的PowerShell Core中设置Bash变量及umask值?

在Linux PowerShell中设置umask的可行方案

为什么之前的方法无效

  • bash -c 'umask 0022'是在独立的bash子进程中设置,进程结束后配置直接失效,PowerShell父进程无法继承该设置。
  • 用Invoke-Expression执行bash赋值语句会报错,因为PowerShell与bash语法不兼容,PowerShell会按自身规则解析bash语句,导致语法错误。

临时生效方案(当前PowerShell会话)

PowerShell 7.x在Linux环境下原生支持umask命令,直接执行即可:

umask 0022

执行后,当前PowerShell会话中创建的文件都会应用这个权限掩码,启动的子进程(包括bash)也会继承该设置。

永久生效方案(每次启动PowerShell自动应用)

  1. 查看PowerShell配置文件路径:
$PROFILE
  1. 若配置文件不存在,创建它:
New-Item -Path $PROFILE -ItemType File -Force
  1. 打开配置文件,添加以下内容并保存:
umask 0022

下次启动PowerShell时,会自动加载该配置并设置umask。

补充:让bash子进程默认使用指定umask

如果需要bash默认使用该umask值,可编辑bash的配置文件(如~/.bashrc或~/.bash_profile),添加:

umask 0022

但这是bash独立的配置,和PowerShell的设置互不影响。

内容的提问来源于stack exchange,提问作者user9924807

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 09:59:56