Ubuntu 命令行,无法识别常见命令以及权限错误

Ubuntu 命令行,无法识别常见命令以及权限错误

我面临一个非常奇怪的问题,就是无法弄清楚它到底是什么。

我正在将我的网站从共享主机迁移到 AWS LightSail 上的自管理 VPS。我将public_html(共享主机) 源站点上的整个目录打包成 tarball 并将其复制到我的目标 VPS。目标 VPS 运行的是 Ubuntu 18.04。

tar xvf website.tar.gz在 VPS 端,我在网站根目录中解压了档案( ),并且它在那里被解压,不出所料,是在目录public_html内的子目录中<website_root>

但是当我尝试将目录的内容移动<website_root>/public_html<website_root>/目录中时,它给出了一个permission denied错误。但是当我尝试 sudo 并像这样输入时:

$ sudo cd public_html/

它说:

cd:未找到命令。

我甚至尝试将 public_html 目录的内容移动到根文件夹中,如下所示:

$ sudo mv public_html/* .

它给我的错误是:

mv:无法统计‘public_html/*’:没有此文件或目录。

我绞尽脑汁,就是想不通我错在哪里。

答案1

您不能使用sudo cd它进入您无权访问的目录。cd是 shell 内置命令,而不是执行的二进制文件。

如果您无权访问该目录,您也无法列出那里的文件,这就是为什么您需要No such file or directory.使用mv public_html/*

成为 root 并随后移动文件。

sudo -i
cd public_html
mv * /to/target/dir/
logout

或者,您可以更改该目录的权限,以便您可以读取它(chmod a+r public_html当您不再需要它时请不要忘记恢复它)或使用以下输出sudo ls

sudo ls public_html |xargs -I "{}" sudo mv {} /to/target/dir/

如果您有大量文件或带有空格的文件,情况就会变得更加复杂。

相关内容