我正在尝试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
~
在此之前两个目录都不存在。至少ll
并ls
没有向他们展示。
但这就是我得到的:
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
我不明白为什么cmd
andbin
文件夹会以这种方式运行,以及为什么它们不包含该文件。
也试过root
:
root@ComputerName:~# cp ~/link1/istio-1.12.2/bin/istioctl /home/TestUser/bin
一样。
您错误地认为该
cp
命令会在目标位置创建一个目录,然后将源文件放在该目录中。它不是那样工作的——要将源文件放入目标目录,该目录必须已经存在;否则,cp
将简单地创建该名称的目标文件。这种行为在cp 的 POSIX 标准中
man cp
描述(在其他地方):本质上,您需要
cp source-file destination-file
orcp 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