scp와 같지만 파일과 폴더를 삭제하는 다른 명령이 있습니까?


14

scp를 사용하여 물건을 원격 위치에 복사하고 있습니다. 그러나 때로는 scp가 예상대로 작동하지 않고 때로는 복사가 제대로 완료되지 않는 것으로 나타났습니다 (복사중인 폴더에 새 파일을 추가했을 때).

따라서 원격 폴더를 먼저 제거한 다음 필요한 것을 정확히 확보하기 위해 복사를 수행하고 싶습니다.

scp와 같은 다른 명령이 있습니까 (예 : srm 또는 smv)? 아니면 원격 폴더와 파일을 제거하는 방법이 있습니까?

답변:


19

ssh명령을 사용하면 원격 호스트에서 거의 모든 명령을 실행할 수 있습니다 (예 :

ssh yourlogin@remotehost rmdir somedir

somedir여기서이 예 는 yourlogin의 홈 디렉토리와 관련이 있습니다.


고마워 내가이 방법을 가지고있는 유일한 문제는 당신이 그것을 호출 할 때마다 다시 "로그인"해야한다는 것입니다. rsync가 유망 해 보이지만 +1은 다음 질문에 답하기 때문에 +1입니다.
code_fodder

5
@code_fodder 또한 rsync로 로그인해야합니다. 실제로 모든 방법 으로 다시 로그인 해야 합니다. 실제로 ssh를 사용하면 최소한 한 번에 여러 명령을 실행할 수 있습니다 ssh you@host bash -c "command1;command2;command3; commandN".
terdon

@terdon 이것은 좋은 지적이며 nicley 덕분에 작동합니다 :)
code_fodder

4

Rsync는 전체 경로 / 트리를 복사하고 대상에 이미있는 파일을 확인하며 변경되지 않은 경우 파일을 복사하지 않아도됩니다. --delete 옵션을 사용하면 더 이상 소스에없는 대상에있는 파일이 삭제됩니다. 그것은 ssh를 통해 작동합니다


누군가 scp에 관한 내 다른 게시물에서 이것을 언급했듯이 rsync로 혼란 스러웠습니다. 로컬 PC에는 rsync가 설치되어 있지만 원격 PC (내장 장치)에는 설치되어 있지 않습니다. 나는 명령을 사용하고 rsync -avz -e shh root@location:/path/to/dest /path/from/host있었지만 암호를 입력하면 실패합니다 sh: rsync: not found. 원격 PC에 rsync가 있어야한다는 의미입니까? 감사!
code_fodder

1
@code_fodder 예, 원격 시스템에서 실행해야 할 프로그램이 필요합니다. 이 프로그램은 직접 복사 프로그램이 아닙니다
Canadian Luke

@CanadianLuke ... 젠장 :(
code_fodder

@code_fodder 그냥 설치하십시오! 더 유용하지 않은 경우
Canadian Luke

임베디드 솔루션에 따라 rsync는 어느 정도 쉽게 사용할 수 있거나 없을 수도 있습니다 ... 임베디드 솔루션에 따라 말한 것처럼 매우 일반적인 성향입니다. 참고 : Rsync를 항상 실행할 필요는 없지만 필요할 때 실행하려면 있어야합니다.
jerm

3

원격 SSH 서버가 SFTP 서브 시스템을 지원하는 경우 (대부분 명시 적으로 비활성화되지 않은 경우), sftp (또는 다른 SFTP 클라이언트 )을 사용하여 원격 서버의 파일 및 디렉토리를 조작 할 수 있습니다.

불행히도, 기본 sftp쉘이 처리 하지 못하는 것은 재귀적인 디렉토리 제거입니다. 디렉토리를 삭제하려면 먼저 모든 내용을 삭제해야합니다. 그러나 대부분의 다른 클라이언트 (특히 그래픽 클라이언트)는 일반적으로이를 지원합니다.

(로컬 OS가 무엇인지 언급하지는 않지만 Linux 인 경우 sftp : // user @ host / path / 와 같은 URL을 가리키는 기본 파일 관리자를 GUI SFTP 클라이언트로 사용할있습니다 . Windows의 경우 WinSCP 괜찮은 클라이언트이고 FileZilla 는 훌륭한 크로스 플랫폼 솔루션입니다.)


1

원격 (/ local) 디렉토리를 비우려면 다음과 같이 rsync를 사용하십시오.

rsync -r --delete-excluded --exclude=* / server:/tmp/empty_this_dir/

조심하십시오- 지정된 목적지 아래의 모든 것을 제거 합니다!


나는 이것을 시도했지만 오류를 반환하고 원격 디렉토리를 제거하지 않습니다. 간부 요청 채널 0에 rsync에 실패 연결이 갑자기 종료 (0 바이트가 지금까지 수신 된) 송신기] rsync에 오류 : 불명 에러 (코드 255) io.c에서 (235) [= 발신자 3.1.2]
xarlymg89

원격에서 rsync를 시작하거나 ssh를 통해 연결하는 데 문제가있는 것 같습니다. 시도 ssh server rsync --version하거나 ssh -v server rsync --version이유를 찾을 수 있습니다 .
bro

답변 해 주셔서 감사합니다. 그러나 우아하지는 않지만 비슷한 결과를 통해 문제를 해결할 수있는 방법을 찾았습니다. 다시 직면해야한다고 생각하기 때문에 다시 시도합니다.
xarlymg89

0

대안으로, 원격 디렉토리를 로컬 디렉토리에 마운트 한 다음 디렉토리를 제거 rm -r /path_to_directory_to_remove하고 마지막으로 마운트 해제하는 것이 트릭입니다.

원래 답변 : https : //.com/a/24650511/973919

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.