Bash
linux + 查找 + 刪除遠端機器上的文件(特定文件除外)
我們有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
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 程式碼的字元串。所以最簡單的方法是將該字元串放在單引號內,這樣本地外殼就不會干擾它。
此 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"