我需要使用 SSH 删除远程目录中的所有文件,
目录本身不能被删除,所以@Wes 的答案不是我需要的。如果是本地目录,我会运行rm -rf dir/*
。
答案1
它非常简单:
ssh HOSTNAME rm -rf "/path/to/the/directory/*"
答案2
ssh
根据我的机器上的 man :
If command is specified, it is executed on the remote host instead
of a login shell.
这意味着 ssh 传递的命令的 shell 扩展不会在远程端完成。因此我们需要“自包含”命令,它不依赖于 shell 扩展。
ssh user@remote-machine "find /path/to/directory -type f -exec rm {} \;"
这里所有查找要删除的文件的工作均由 独自完成find
,无需 shell 的帮助。
一些类似的问题
答案3
这应该可以解决问题:
ssh HOSTNAME "sh -c 'rm -rf /path/to/the/directory/*'"
请注意,您需要用双引号将远程命令括起来,用单引号将路径名括起来。
答案4
从目录层次结构中删除所有文件:
ssh user@HOSTNAME 'rm $(find /path/to/directory -type f)'