团络社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 100|回复: 0
收起左侧

sudo cd 找不到命令解决办法

[复制链接]

2

主题

3

回帖

10

积分

新手上路

Rank: 1

积分
10

论坛元老

发表于 2025-11-20 14:40:16 | 显示全部楼层 |阅读模式
使用Linux系统也好多年了,最近在维护一台Ubuntu服务器的时候突然发现,出于惯性思维,在使用非root账户执行”sudo cd dir”命令进入部分敏感目录时,提示”sudo: cd: command not found“,解决完之后发现非常有意思,记录下我的解决办法。
解决办法

直接说解决办法:
sudo su -cd dir是的,直接通过切换到root账户再执行相关的命令,可能有更好的办法,我的办法就是这么简单粗暴。
原因是sudo只能执行文件目录中实际存在的命令,cd、mv等命令比较特殊,是shell内建的命令,部分系统中并不真实存在,使用直接执行sudo cd可能会报错或者无效。
因为权限的原因,即使执行如下命令,也无法进入对于的目录:
sudo sh -c 'cd dirname'执行完之后,发现还是在原有的目录。
额外知识

可能很多朋友也跟我一样,从学习Linux开始就知道cd、ls、mv等命令,但是从未了解过这些命令内在的一些相关知识。
用了这么多年的Linux,遇到问题,我也是出于惯性思维直接就按照以往的经验直接在命令前面加上sudo以为直接就能解决问题了,但是发现不能生效才知道Linux要学的东西还很多啊。
很多我们常用的命令,其实并不是单独安装的软件包,而是一些shell内建的命令,通过执行如下命令即可知道对应的命令是否是shell内建的命令:
zocoxx@cloudbool.com:~# type -a cdcd is a shell builtin甚至在部分系统,cd等命令都不是真实存在于路径中,比如说Debian 11系统:
root@cloudbool.com:~# which cdIllegal option --Usage: /usr/bin/which [-a] args
团络社区官网:bbs.tuanluo.net
贡献值排行榜:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表