web-dev-qa-db-ja.com

SSHを使用してリモートホストからファイルを削除する

SSHを使用してリモートディレクトリ内のすべてのファイルを削除する必要があります。

ディレクトリ自体を削除してはならないので、@ Wesの答えは私が必要としているものではありません。ローカルディレクトリの場合は、rm -rf dir/*を実行します。

6
dimba

私のマシンのsshの人によると:

If command is specified, it is executed on the remote Host instead 
of a login Shell.

これは、sshによって渡されたコマンドのシェル拡張がリモート側で実行されないことを意味します。したがって、シェル拡張を中継しない「自己完結型」コマンドが必要です。

ssh user@remote-machine "find /path/to/directory -type f -exec rm {} \;"

ここでは、削除するファイルを見つけるためのすべての作業は、シェルの助けを借りずに、findによって排他的に実行されます。

似たような 質問

7
dimba

それは次のように簡単です:

ssh HOSTNAME rm -rf "/path/to/the/directory/*"
16
Wes Hardaker

これでうまくいくはずです:

ssh HOSTNAME "sh -c 'rm -rf /path/to/the/directory/*'"

リモートコマンドは二重引用符で囲み、パス名は一重引用符で囲む必要があることに注意してください。

1
Igor Feghali