scp는 이 파일을 어디에 저장합니까?

scp는 이 파일을 어디에 저장합니까?

scpSSH 서버에서 일부 파일을 다운로드하는 명령을 실행했습니다 . 현재 폴더에 넣기 대신 .실수로 넣었습니다 *. scp가 파일을 복사하여 어딘가에 배치한 것 같습니다. 내 명령은 다음과 유사합니다.

$moshe> scp [email protected]:~/SomeDirectory/SubDir/* *

나는 다음과 같이 입력하려고했습니다 :

$moshe> scp [email protected]:~/SomeDirectory/SubDir/* .

그들은 어디에 있을까요?

답변1

쉘은 *현재 디렉토리의 모든 파일로 확장됩니다. scp여러 소스 파일과 대상 경로( 와 동일)가 필요하므로 현재 디렉터리의 마지막 파일을 제외한 모든 파일을 마지막 파일에 cp복사합니다 . [email protected]:~/SomeDirectory/Subdir/*따라서 현재 디렉터리의 파일 목록이 변경되지 않았다고 가정하고 마지막으로 나열된 디렉터리를 확인하세요.

$ ls | tail -1

답변2

현재 디렉터리의 하위 디렉터리에 배치됩니다.

예를 들어 현재 디렉터리가 다음과 같은 경우:

[andcoz@...] ~/test> ls -F
e  f  r  s  v  w  Z/

Z는 디렉터리입니다. 당신이 쓸 때 :

scp [email protected]:~/SomeDirectory/SubDir/* *

셸 확장은 명령을 다음 형식으로 변환합니다.

scp [email protected]:~/SomeDirectory/SubDir/* e  f  r  s  v  w  Z 

Z따라서 원격 시스템의 모든 파일과 모든 로컬 디렉터리 파일이 해당 디렉터리 에 복사됩니다 .

답변3

현재 디렉터리에 파일이 없으면 scp모든 원격 파일이 이름이 지정된 디렉터리에 순차적으로 복사됩니다 *. 즉, ./*이제 파일에는 마지막 원격 파일이 알파벳순으로 포함됩니다. 원격 파일이 디렉터리인 경우 scp오류 메시지가 표시되지만 복사는 계속됩니다.

현재 디렉터리에 일반 파일이 하나만 있으면 scp모든 원격 파일이 해당 파일에 순서대로 복사됩니다.

현재 디렉토리에 항목이 두 개 이상 있는 경우 알파벳 순서로 마지막 항목의 파일 형식에 따라 상황이 달라집니다(실행 중인 경우 목록의 마지막 요소 ls).

  • 일반 파일인 경우 scp"디렉토리가 아닙니다"라는 오류와 함께 중단됩니다.
  • 디렉터리인 경우 scp모든 원격 파일과 현재 디렉터리의 마지막 항목을 제외한 모든 항목이 해당 디렉터리로 복사됩니다.

원격 디렉토리를 마운트하는 것이 좋습니다sshfs또는 와일드카드 없이 rsync -av또는를 사용하여 rsync -auv파일을 복사합니다. scp때로는 오류가 발생할 수 있습니다.

¹이름이 .로 시작하는 파일은 제외됩니다 ..

관련 정보