我正在运行 Ubuntu 10.04.2 LTS。为什么我无法cd
进入/var/www
目录?
david@ubuntu:/var$ pwd
/var
david@ubuntu:/var$ ls -l
drwxrwxr-- 13 root root 4096 2011-02-26 21:53 www
david@ubuntu:/var$ cd www
-bash: cd: www: Permission denied
david@ubuntu:/var$ sudo cd www
sudo: cd: command not found
答案1
您需要有执行权限才能进入目录。
sudo chmod o+x /var/www
答案2
禁止“其他人”进入目录是有原因的,不是吗?因此,我建议获取 root 权限以进入该目录,执行一些操作,然后离开,放弃 sudo shell。
sudo -i
cd /var/www
# do your thing
cd -
exit
答案3
再补充一点,为您的系统创建一个 Web 用户和组,并且不以 root 身份运行服务是明智之举。然后,您还可以根据需要将用户添加到该组,而不授予 root 权限。
答案4
您是否正在尝试 cd 到主文件夹?
可能是您尝试通过 cd 转到包含的路径,~
但由于您在其两边使用了引号,因此该路径不会被扩展。
$ cd "$root/foo"
bash: cd: ~/myfolder/foo: No such file or directory
$ cd "~"
bash: cd: ~: No such file or directory
有 AskUbuntu 上的一个非常好的答案 详细解释
~ 周围的任何类型的引号都会阻止这种波浪符号的扩展。
因此,您可能会尝试cd $location
,但由于位置包含波浪符号,因此它不起作用。
一个好的快速解决方案是使用$HOME
而不是~
。虽然 即使~
在双引号内也不会扩展,但是$HOME
是。
因此更改:
- 从
declare location = "~/ExistingFolder/"
- 到
declare location = "$HOME/ExistingFolder/"
你应该读原始答案在 AskUbuntu 问题中为什么我不能 cd 到带引号的波浪号 (‘~’)?“。
它详细解释了正在发生的事情以及可用的选项。