Command-Line-Interface

Ubuntu命令行,也無法辨識常見命令和權限錯誤

  • September 24, 2019

我面臨一個非常奇怪的問題,只是無法解決。

我正在將我的網站從共享託管遷移到 AWS LightSail 上的自我管理 VPS。我將(共享主機)源站點上的整個public_html目錄打包,並將其 scp’d 到我的目標 VPS。目標 VPS 正在執行 Ubuntu 18.04。

在 VPS 端,我解壓縮tar xvf website.tar.gz了網站根目錄中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: cannot stat ‘public_html/*’: 沒有這樣的文件或目錄。

在我的智慧盡頭,我無法弄清楚我要去哪裡錯了。

您不能使用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/

如果您有大量文件或帶有空格的文件,它會變得更加複雜。

引用自:https://serverfault.com/questions/985434