Debian

無法獲取主目錄的內容,也無法在那裡複製文件

  • January 31, 2022

我正在嘗試istioctl在 Debian 上的主目錄中複製命令 (),以便我始終可以使用它,因為它將自動添加到我的 PATH 變數中。

我試過(“link1”是指向包含 istioctl 的硬碟的符號連結):

TestUser@ComputerName:~$ cp ~/link1/istio-1.12.2/bin/istioctl ~/cmd

TestUser@ComputerName:~$ cp ~/link1/istio-1.12.2/bin/istioctl ~/bin

~在此之前兩個目錄都不存在。至少llls沒有向他們展示。

但這就是我得到的:

TestUser@ComputerName:~$ ll ~
total 171856
-rwxr-xr-x 1 TestUser users 87990272 Jan 24 19:47 bin
-rwxr-xr-x 1 TestUser users 87990272 Jan 24 19:50 cmd
lrwxrwxrwx 1 TestUser users       38 Jan 13 18:16 link1 -> /some/path1
lrwxrwxrwx 1 TestUser users       39 Jan 13 18:10 link2 -> /some/path2
lrwxrwxrwx 1 TestUser users       38 Jan 13 18:17 link3 -> /some/path3
lrwxrwxrwx 1 TestUser users       38 Jan 13 18:15 link4 -> /some/path4
lrwxrwxrwx 1 TestUser users       38 Jan 13 18:15 link5 -> /some/path5
TestUser@ComputerName:~$
TestUser@ComputerName:~$ ll ~/bin
-rwxr-xr-x 1 TestUser users 87990272 Jan 24 19:47 /home/TestUser/bin
TestUser@ComputerName:~$
TestUser@ComputerName:~$ ll ~/cmd
-rwxr-xr-x 1 TestUser users 87990272 Jan 24 19:50 /home/TestUser/cmd

我不明白為什麼cmdandbin文件夾會以這種方式執行,以及為什麼它們不包含該文件。

也試過root

root@ComputerName:~# cp ~/link1/istio-1.12.2/bin/istioctl /home/TestUser/bin

一樣。

您錯誤地認為該cp命令會在目標位置創建一個目錄,然後將源文件放在該目錄中。它不是那樣工作的——要將源文件放入目標目錄,該目錄必須已經存在;否則,cp將簡單地創建該名稱的目標文件

這種行為在cp 的 POSIX 標準中man cp描述(在其他地方):

cp [-Pfip] source_file target_file

cp [-Pfip] source_file... target

第一種概要形式由兩個操作數表示,它們都不是目錄類型的現有文件。cp 實用程序應將 source_file … 的內容複製到由 target_file 命名的目標路徑。

第二種概要形式由兩個或多個操作數表示,其中未指定 -R 選項並且第一種概要形式不適用。如果任何 source_file 是目錄類型的文件,如果 target 不存在,或者如果 target 沒有命名目錄,這將是一個錯誤。cp 實用程序應將每個 source_file … 的內容複製到由 target 連接命名的目標路徑,如果 target 不以 a 結尾,則為單個字元,以及 source_file 的最後一個組件。

本質上,您需要cp source-file destination-fileor cp source-file pre-existing-directory

實現你想要的*,mkdir ~/bin或者mkdir ~/cmd然後。聽起來您可能已將 $HOME 目錄添加到 PATH 中。這是合法的,但不太常見。更常見的是將or目錄添加到您的 PATH 中。確保您已將該*目錄添加到 PATH 以確保成功。 cp ~/link1/istio-1.12.2/bin/istioctl ~/bin``~/bin``~/cmd

引用自:https://unix.stackexchange.com/questions/687749