sudo cd为什么不能够执行

作者:crane-yuan 日期:2017-04-21


问题描述

我想要cd/etc/docker,但是它给我一个权限不够的错误,然后,我想到使用sudo cd /etc/docker时,它告诉我sudo: cd:找不到命令

于是,郁闷的我就去上网找了下原因。

问题分析

cd不是一个应用程序而是Linux内建的命令,而sudo仅仅只对应用程序起作用。

sudo foo只意味着以root权限运行foo程序

所以,sudo cd /etc/docker会报sudo: cd:找不到命令

验证

> type cd
cd is a shell builtin

注意,关于cd是不是内建命令,OS X 10.8中cd不是内建命令(可以参考what-is-the-point-of-the-cd-external-command),具体其他的版本的OS X我就不清楚了,大部分的Linux系列(Ubuntu、CentOS和ArchLinux)中cd都是内建命令

解决方法

  • 使用sudo -i命令提升用户权限
> sudo -i
> cd /etc/docker
  • 使用sudo -s命令打开特殊shell
> sudo -s
> cd /etc/docker

上面都可以使用exit命令退出,也可以使用Ctrl+D快捷键退出

参考文章

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 87,461评论 13 122
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 64,729评论 12 433
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 12,991评论 17 146
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,011评论 0 7
  • 打捞童年的记忆,清晰如昨。 小学时放学写好作业吃好饭最爱在楼下疯跑,尤其天黑后更加不愿回家,那本来熟悉平淡的场景因...
    清扬大人阅读 89评论 2 3