sftp rmdirが機能しないのはなぜですか?


18

私のプライベートサーバースペースからたくさんのファイルとフォルダーがあるディレクトリを削除しようとしています。SFTP経由で正常にログオンしています。ディレクトリ全体に問題なくアクセスできます。rmで個々のファイルを削除することもできます。しかし、これには永遠に時間がかかります。したがって、削除したい最上位のフォルダーでrmdirを実行したいだけです。しかし、これを行うと、

ディレクトリを削除できませんでした:失敗

私が間違っている可能性についての考えはありますか?

どうもありがとう、サム


そのサーバーにSFTPできる場合、SSHできますか?その場合は、RMコマンドのより強力なバージョンを使用できます。rm
Chris

回答:


21

私の経験では、rmdirは空のディレクトリで作業することを好みます。ディレクトリを削除しようとしている場合はfoo、次のようにします:

$rm foo/*
$rmdir foo

2
sftpのrmに-rfフラグが存在しないため編集されました。
クリス

1
rm -rfを実行するSSHが明らかな答えでした。SFTPでrm -rfを試しましたが、指摘したように-rfを受け入れることができませんでした。(SFTPのワイルドカードトリックも機能しませんでした。)とにかく、ご協力ありがとうございます。
user1451632

それは面白い。rm foo / *は私のためにSFTPで働いていました。とにかく、解決してくれてうれしいです!
クリス

それでも、再帰的にディレクトリを削除するわけではありません。すでに十分ですが、まだ完全ではありません:-)
クシシュトフヤブロネスキ

同じ問題があり、空でないディレクトリが含まれrm foo/*ていたため動作しませんでしたfoo/。幸いにもrsync、あまりにも許可され、私は空のディレクトリに作成されたローカルにして使用rsync -rv --delete empty_local_dir/ host.example.org:/foo/リモートの下にすべて削除するfoo/ディレクトリを。その後、rmdir fooSFTP経由で可能になりました。
ckujau

5

使用しているSFTPクライアントを指定していません。したがって、OpenSSH SFTP(sftp)を想定しています。

rmdirOpenSSH SFTPクライアントのコマンドは、SSH_FXP_RMDIRSFTPプロトコル要求に直接マップします。バージョン3(OpenSSHで使用されているもの)のSFTP仕様ではSSH_FXP_RMDIR「指定されたディレクトリが空でない場合」という操作は失敗する可能性があると明記されています(ただし、必須ではないようです)。

ディレクトリにサブディレクトリがない場合は、rm foo/*(シェルコマンドではなくOpenSSH SFTPコマンドを意味する)を使用して、ディレクトリ内のすべてのファイルを最初に削除できます。そしてを使用しますrmdir


1
古典的な質問は次のとおりですrm -r *。SFTPをどのように使いますか。可能だとは思いません。
ヤリトゥルキア

2
@JariTurkia sftp(OpenSSHコマンドラインクライアント)では不可能です。十分にスマートなクライアントがあれば、SFTP(プロトコル)で可能です。
マーティンプリクリル

スマートで十分なSFTPクライアントに関する提案をいただければ幸いです。特定のボックスが1つあります。これは定期的に調整する必要があり、セキュリティ上の理由からSFTPに制限されています。明らかに、OpenSSHのSFTPクライアントが提供するコマンドの限られたセットを考えると、何かをするとき、それは非常に苦痛になります。
ヤリトゥルキア

特定の問題について質問する(「SFTPを使用してフォルダーを再帰的に削除する方法」)-プラットフォームを指定してください。
マーティンPrikryl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.