私はscpを使用して、データをリモートの場所にコピーしています。しかし、scpが期待どおりに機能しない場合があります。コピーが正常に完了しないことがあります(コピーしているフォルダーに新しいファイルを追加した場合など)。
したがって、最初にリモートフォルダーを削除してから、コピーを実行して、必要なものを正確に入手したいと考えています。
Scp(srmやsmvなど)のような他のコマンドはありますか?または、リモートのフォルダーとファイルを削除する方法はありますか?
ssh
コマンドを使用すると、リモートホストでほとんどすべてのコマンドを実行できます。
ssh yourlogin@remotehost rmdir somedir
この例では、somedir
はyourloginのホームディレクトリを基準にしています。
Rsyncはパス/ツリー全体をコピーし、すでに宛先にあるファイルをチェックし、変更されていない場合はわざわざコピーしません。 --deleteオプションを使用すると、ソースに存在しなくなった、宛先にあるファイルがすべて削除されます。 SSHで動作します
リモートSSHサーバーが SFTPサブシステム をサポートしている場合(明示的に無効にされていない限り、ほとんどの場合) sftp
Shell (またはその他の- SFTPクライアント )リモートサーバー上のファイルとディレクトリを操作します。
残念ながら、基本的なsftp
シェルが明らかにしないハンドルの1つは、再帰的なディレクトリの削除です。ディレクトリを削除するには、最初にその内容をすべて削除する必要があります。ただし、他のほとんどのクライアント(特にグラフィカルなクライアント)は通常、これをサポートしています。
(ローカルOSについては言及していませんが、Linuxの場合は ネイティブファイルマネージャーをGUI SFTPクライアントとして使用 sftp://のようなURLを指定してくださいユーザー@ホスト/道/。 Windowsの場合、 WinSCP はまともなクライアントであり、 FileZilla は優れたクロスプラットフォームソリューションです。)
リモート(/ local)ディレクトリを空にするには、次のようにrsyncを使用します。
rsync -r --delete-excluded --exclude=* / server:/tmp/empty_this_dir/
注意してください-指定された宛先の下にあるすべてを削除します!
別の方法として、リモートディレクトリをローカルディレクトリにマウントしてからrm -r /path_to_directory_to_remove
で削除し、最後にディレクトリをアンマウントすることでうまくいきます。