istioctl
PATH変数に自動的に追加されるので、いつでも使用できるようにDebianのホームディレクトリにコマンド()をコピーしようとしています。
私は試しました(「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
フォルダbin
にこのような理由とファイルが含まれていない理由は理解できません。
また試してくださいroot
:
root@ComputerName:~# cp ~/link1/istio-1.12.2/bin/istioctl /home/TestUser/bin
同じ。
答え1
cp
コマンドはターゲットの場所にディレクトリを作成し、ソースファイルをそのディレクトリに配置すると誤って考えます。これはうまくいきません。ソースファイルをターゲットディレクトリに配置するには、そのディレクトリがすでに存在している必要があります。それ以外の場合は、cp
ターゲットのみが作成されます。文書その名前の。
man cp
この動作は(および他の場所で)説明されています。cpのPOSIX規格:
cp [-Pfip] source_file target_file
cp [-Pfip] source_file... target
最初の要約形式は 2 つのオペランドで表され、どちらもディレクトリタイプの既存のファイルではありません。 cpユーティリティは、source_fileの内容をtarget_fileで指定された宛先パスにコピーする必要があります。
2 番目の要約形式は、-R オプションが指定されておらず、最初の要約形式が適用されない 2 つ以上のオペランドで表されます。 source_file がディレクトリ・タイプのファイルである場合、宛先が存在しない場合、または宛先がディレクトリ名を指定しない場合、エラーが発生します。 cp ユーティリティーは、各 source_file の内容を宛先に関連付けられた名前の宛先パスにコピーし、宛先が終了していない場合は、単一文字と source_file の最後のコンポーネントにコピーする必要があります。
デフォルトでcp source-file destination-file
またはが必要ですcp source-file pre-existing-directory
。
欲しいものを達成するために、mkdir ~/bin
またはmkdir ~/cmd
それから cp ~/link1/istio-1.12.2/bin/istioctl ~/bin
。 PATHに$ HOMEディレクトリを追加したようです。これは正当ですが、あまり一般的ではありません。 PATHに~/bin
ディレクトリを追加する方が一般的です。~/cmd
追加したことを確認してくださいそれ成功するには、ディレクトリをPATHに追加してください。