我们有 redhat 7.2 Linux 版本
我想删除远程计算机上
/etc/yum.repos.d
除 /etc/yum.repos.d 下的以下文件之外的所有存储库文件
local.repo
redhat.repo
cluster.repo
我们尝试过这个(但没有成功)
ssh root@$machine find /etc/yum.repos.d -type f -not -name 'local.repo ' -or -name 'redhat.repo' -or -name ' cluster.repo’ –delete
或者
ssh root@$machine find /etc/yum.repos.d ! -name 'local.repo|redhat.repo|cluster.repo' -type f -exec rm -f {} +
或者
ssh root@$machine find /etc/yum.repos.d -type f -not \(-name 'local.repo' -or -name 'redhat.repo' -or -name 'cluster.repo' \) -delete
答案1
ssh "root@$machine" '
find /etc/yum.repos.d -type f ! \(
-name local.repo -o \
-name redhat.repo -o \
-name cluster.repo \) –delete
'
(假设 root 用户的登录 shell$machine
与 Bourne 类似)。
请记住,您传递给的ssh
不是在远程主机上运行的命令的参数,而是由远程用户的登录 shell 解释为 shell 代码的字符串。因此最简单的方法是将该字符串放在单引号内,这样本地 shell 就不会干扰它。
答案2
此 CLI 将删除 /etc/yum.repos.d 下的所有文件,排除这些文件,并且还会打印被删除的文件
ssh "root@$IP" "find /etc/yum.repos.d ! -name local.repo ! -name redhat.repo ! -name cluster.repo -type f -delete -print"