홈 디렉터리의 콘텐츠를 가져올 수 없으며 파일을 복사할 수 없습니다.

홈 디렉터리의 콘텐츠를 가져올 수 없으며 파일을 복사할 수 없습니다.

istioctlPATH 변수에 자동으로 추가되므로 언제든지 사용할 수 있도록 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

첫 번째 요약 형식은 두 개의 피연산자로 표시되며 둘 다 디렉터리 유형의 기존 파일이 아닙니다. cp 유틸리티는 source_file의 내용을 target_file에 지정된 대상 경로에 복사해야 합니다.

두 번째 요약 형식은 -R 옵션이 지정되지 않고 첫 번째 요약 형식이 적용되지 않는 두 개 이상의 피연산자로 표시됩니다. 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에 추가하세요.

관련 정보