web-dev-qa-db-ja.com

scpのような他のコマンドはありますか?

私はscpを使用して、データをリモートの場所にコピーしています。しかし、scpが期待どおりに機能しない場合があります。コピーが正常に完了しないことがあります(コピーしているフォルダーに新しいファイルを追加した場合など)。

したがって、最初にリモートフォルダーを削除してから、コピーを実行して、必要なものを正確に入手したいと考えています。

Scp(srmやsmvなど)のような他のコマンドはありますか?または、リモートのフォルダーとファイルを削除する方法はありますか?

14
code_fodder

ssh コマンドを使用すると、リモートホストでほとんどすべてのコマンドを実行できます。

ssh yourlogin@remotehost rmdir somedir

この例では、somedirはyourloginのホームディレクトリを基準にしています。

19
garyjohn

Rsyncはパス/ツリー全体をコピーし、すでに宛先にあるファイルをチェックし、変更されていない場合はわざわざコピーしません。 --deleteオプションを使用すると、ソースに存在しなくなった、宛先にあるファイルがすべて削除されます。 SSHで動作します

4
jerm

リモートSSHサーバーが SFTPサブシステム をサポートしている場合(明示的に無効にされていない限り、ほとんどの場合) sftp Shell (またはその他の- SFTPクライアント )リモートサーバー上のファイルとディレクトリを操作します。

残念ながら、基本的なsftpシェルが明らかにしないハンドルの1つは、再帰的なディレクトリの削除です。ディレクトリを削除するには、最初にその内容をすべて削除する必要があります。ただし、他のほとんどのクライアント(特にグラフィカルなクライアント)は通常、これをサポートしています。

(ローカルOSについては言及していませんが、Linuxの場合は ネイティブファイルマネージャーをGUI SFTPクライアントとして使用 sftp://のようなURLを指定してくださいユーザー@ホスト//。 Windowsの場合、 WinSCP はまともなクライアントであり、 FileZilla は優れたクロスプラットフォームソリューションです。)

3
Ilmari Karonen

リモート(/ local)ディレクトリを空にするには、次のようにrsyncを使用します。

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

注意してください-指定された宛先の下にあるすべてを削除します!

1
bro

別の方法として、リモートディレクトリをローカルディレクトリにマウントしてからrm -r /path_to_directory_to_removeで削除し、最後にディレクトリをアンマウントすることでうまくいきます。

ここでの元の答え: https://stackoverflow.com/a/24650511/973919

0
xarlymg89