sftp rmdir이 작동하지 않는 이유는 무엇입니까?


18

개인 서버 공간에서 많은 파일과 폴더가있는 디렉토리를 제거하려고합니다. SFTP를 통해 로그온하고 있습니다. 나는 전체 디렉토리에 아무 문제없이 접근 할 수있다. rm을 사용하여 개별 파일을 삭제할 수도 있습니다. 그러나 이것은 영원히 나를 데려 갈 것입니다. 따라서 제거하려는 가장 높은 폴더에서 rmdir을하고 싶습니다. 하지만 이렇게하면

디렉토리를 제거 할 수 없습니다 : 실패

내가 뭘 잘못하고 있는지에 대한 생각?

대단히 감사합니다, 샘


해당 서버에 SFTP를 사용할 수 있다면 SSH를 사용할 수 있습니까? 그렇다면보다 강력한 RM 명령 버전을 사용할 수 있습니다. rm -rf foo / *
Chris

답변:


21

내 경험상 rmdir은 빈 디렉토리에서 작업하는 것을 선호합니다. 디렉토리를 삭제하려고하면 다음 foo을 수행하십시오.

$rm foo/*
$rmdir foo

2
sftp에서 rm에 대해 -rf 플래그가 없기 때문에 편집되었습니다.
Chris

1
rm -rf를 수행하는 SSH가 확실한 대답이었습니다. SFTP에서 rm -rf를 시도했지만 지적했듯이 -rf를 수락 할 수 없습니다. SFTP의 와일드 카드 트릭도 작동하지 않았습니다. 어쨌든 도움을 주셔서 감사합니다.
user1451632

재밌 네요 rm foo / *는 SFTP에서 저를 위해 일했습니다. 어쨌든, 문제가 해결되어 다행입니다.
Chris

여전히 디렉토리를 재귀 적으로 제거하지는 않습니다. 그것은 이미 충분히 좋지만 아직 완벽하지는 않습니다 :-)
Krzysztof Jabłoński

동일한 문제 rm foo/*가 있었으며 foo/비어 있지 않은 디렉토리가 포함되어 작동하지 않았습니다 . 운 좋게도 rsync허용되었으며 로컬로 빈 디렉토리를 만든 다음 rsync -rv --delete empty_local_dir/ host.example.org:/foo/원격 foo/디렉토리 아래의 모든 것을 제거하는 데 사용 되었습니다 . 이후 rmdir fooSFTP 를 통해 가능했습니다 .
ckujau 2016 년

5

사용중인 SFTP 클라이언트를 지정하지 않았습니다. 그래서 OpenSSH SFTP ( sftp)를 가정합니다 .

rmdirOpenSSH SFTP 클라이언트의 명령 은 SSH_FXP_RMDIRSFTP 프로토콜 요청에 직접 매핑됩니다 . 버전 3에 대한 SFTP 사양 (OpenSSH에서 사용되는 사양)에 SSH_FXP_RMDIR따르면 "지정된 디렉토리가 비어 있지 않은 경우" ( 작업이 필수 는 아니지만) 작업이 실패 할 수 있다고합니다 .

디렉토리에 서브 디렉토리가없는 경우, rm foo/*쉘 명령이 아닌 OpenSSH SFTP 명령을 사용하여 디렉토리의 모든 파일을 먼저 제거 할 수 있습니다. 그런 다음을 사용하십시오 rmdir.


1
고전적인 질문은 rm -r *SFTP를 어떻게 사용 하는가 입니다. 나는 그것이 가능하다고 생각하지 않습니다.
Jari Turkia

2
@JariTurkia sftp(OpenSSH 명령 줄 클라이언트) 로는 불가능합니다 . 똑똑한 클라이언트가있는 경우 SFTP (프로토콜)로 가능합니다.
Martin Prikryl

똑똑한 SFTP 클라이언트에 대한 제안을 부탁드립니다. 정기적으로 땜질해야하는 특정 상자가 하나 있으며 보안상의 이유로 SFTP로 제한됩니다. OpenSSH의 SFTP-client가 제공하는 제한된 명령 세트를 고려할 때 무언가를 할 때 분명히 고통스러워집니다.
Jari Turkia

특정 문제에 대한 질문 ( "SFTP를 사용하여 폴더를 재귀 적으로 삭제하는 방법" )-플랫폼을 지정해야합니다.
Martin Prikryl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.