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

Linux连续执行多命令失效:sudo su切换用户后cd命令不执行

问题解决:链式执行sudo切换用户后cd命令不生效

你遇到的问题核心是:sudo su - airflow会启动一个全新的airflow用户登录shell,而你用;或&&连接的cd命令是在原来的用户shell里执行的,自然不会作用到新启动的airflow shell中。

解决方法很简单,让su直接在新shell里执行cd命令,甚至可以直接进入交互shell保持在目标目录:

常用解决方案

  • 用su的-c参数指定要执行的命令链:

    sudo su - airflow -c "cd /opt/test_folder && bash"
    

    这条命令会让airflow用户先切换到目标目录,然后启动交互bash shell,你会直接处于/opt/test_folder下。

  • 也可以用sudo -u直接指定用户执行命令,效果一致:

    sudo -u airflow bash -c "cd /opt/test_folder && bash"
    
  • 如果只是需要执行某条具体命令(不需要交互shell),可以直接写命令链:

    sudo su - airflow -c "cd /opt/test_folder && 你的具体命令"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:55:18