서버에서 로컬 컴퓨터로 파일 이동(복사 아님)

서버에서 로컬 컴퓨터로 파일 이동(복사 아님)

내 로컬 컴퓨터로 이동(복사 아님)하려는 파일이 Linux 서버에 있습니다. 그런데 스택 오버플로에서 명령을 읽은 후 아래와 같이 했는데 파일을 이동하지 않고 복사만 합니다.

scp -r [email protected]:/home/obs/folder/test.txt       /home/yuan/folder/

어떤 도움이라도 대단히 감사하겠습니다.

답변1

"이동하다"기본적으로 소스 파일을 복사한 다음 삭제합니다.

네가 원한다면"이동하다"웹에 있는 파일은 이렇게 해야 합니다. 네트워크 연결이 실패하면 데이터 손실 없이 복사를 다시 시도할 수 있으므로 항상 더 나은 옵션입니다(파일이 잘못 전송되었지만 나중에 삭제된 경우).

파일이 전송된 후에는 서버에서 소스 파일을 삭제해야 합니다. 예를 들면 다음과 같습니다.

ssh [email protected] 'rm /home/obs/folder/test.txt'

파일 복사를 위해 예제에서 사용한 옵션은 -r네트워크를 통해 파일 디렉터리를 복사하려는 것을 암시합니다. 내 생각엔 네가 원하는 것 같아이동하다네트워크의 모든 파일(해당 소스 디렉터리의 모든 파일을 전송한 후 삭제)

복사 또는"이동하다"두 컴퓨터 간의 파일의 경우 다음을 사용하는 것이 좋습니다.rsync. 새 파일과 변경된 파일만 전송하고 대상에 이미 있는 동일한 파일은 건너뜁니다. 전송된 후 소스 파일을 한 번에 삭제할 수 있는 옵션이 있으며, 이는 전송할 때 예상할 수 있는 동작을 모방해야 합니다."이동하다"한 시스템에서 다른 시스템으로의 파일:

rsync -aPEmivvz --remove-source-files [email protected]:/home/obs/folder /home/yuan

파일의 경우 다음을 사용할 수 있습니다.

rsync -aPEmivvz --remove-source-files [email protected]:/home/obs/folder/file.txt /home/yuan/folder/

--remove-source-files파일이 전송된 후 파일을 삭제하려면 이 옵션을 사용하십시오 .

답변2

rsync선택 이 있습니다 --remove-source-files. 동기화된 디렉터리가 아닌 모든 파일을 삭제합니다.

이것은 효과가 있을 수 있습니다:

rsync -avz --remove-source-files [email protected]:/home/obs/folder/test.txt /home/yuan/folder/

rsync는 원본 컴퓨터와 대상 컴퓨터 모두에 설치되어야 합니다.

실행하기 전에 실행하여 --dry-run작동하는지 확인하세요.

rsyncover의 이점 scp은 파일 권한, 소유권, 기호 링크를 복사하고, 압축을 사용하여 느린 연결에서 전송 속도를 높이고, 삭제하기 전에 전송이 성공했는지 확인하기 위해 해시를 수행한다는 것입니다.

저는 주로 rsync백업에 이 기능을 사용하며 마지막 동기화 이후 변경된 파일만 전송하므로 많은 시간과 대역폭이 절약됩니다.

답변3

scp서버에서는 아무것도 삭제되지 않습니다. rm성공하면 다음을 실행할 수 있습니다.scp

scp -r [email protected]:/home/obs/folder/test.txt /home/yuan/folder/ \
  && ssh [email protected] 'rm /home/obs/folder/test.txt'

답변4

숟가락이 없습니다.

"move"라는 단어는 영어로 "움직이다"를 의미합니다. 컴퓨터에서는 그렇지 않습니다. mv 명령은 단순히 물리적 객체에 대한 인간의 고정을 향상시키기 위해 만들어졌습니다.

이름을 좀 더 적절하게 변경하세요. 이것이 rename과 mv를 서로 바꿔서 사용할 수 있는 이유입니다. 동일한 파일 시스템의 한 디렉터리에서 다른 디렉터리로 파일을 이동하면 새 경로를 포함하는 새 전체 이름으로 파일의 "이름이 변경"됩니다.

파일을 종이에 적힌 간단한 2열 세로 목록으로 생각하세요. 경로는 왼쪽에 있고 파일 내용은 오른쪽에 있습니다.

"이동"은 왼쪽 열을 지우고 새 값을 씁니다. 파일의 내용은 아무데도 "이동"하지 않습니다. 파일 시스템은 이러한 페이지가 있는 바인더입니다.

한 파일 시스템 또는 다른 파일 시스템에서 파일을 이동하고 싶다고 생각하는 경우(한 컴퓨터에서 다른 컴퓨터로 포함)당신은하지 않습니다. 당신이 하는 일은 그것을 한 곳에서 다른 곳으로 복사한 다음 첫 번째 것을 "삭제"하는 것입니다. (물론 실제로 삭제되는 것은 아닙니다.잊다그것. )

이동된 것은 ​​파일이 아닙니다. 바로 당신입니다.

관련 정보