我被允许访问安装了50+ php rpms的服务器.我试图将它们全部删除.
基本上,我正在尝试将这两个命令组合在一起:
rpm -qa | grep 'php'
Run Code Online (Sandbox Code Playgroud)
和
rpm --erase
Run Code Online (Sandbox Code Playgroud)
我对管道和重定向有一点了解,但我不知道如何将它们用于此目的.请帮忙.
Acu*_*nus 26
yum列出并删除指定的包及其所有依赖项,但需要y/N确认:
yum remove 'php*'
Run Code Online (Sandbox Code Playgroud)
要绕过确认,请替换yum为yum -y.
rpm列出安装了哪些RPM:
rpm -qa 'php*'
rpm -qa | grep '^php' # Alternative listing.
Run Code Online (Sandbox Code Playgroud)
列出将被删除的RPM,而不实际删除它们:
rpm -e --test -vv $(rpm -qa 'php*') 2>&1 | grep '^D: erase:'
Run Code Online (Sandbox Code Playgroud)
在Amazon Linux上,您可能需要使用grep '^D: ========== ---'.
如果上述命令未列出相关的RPM,请调查错误:
rpm -e --test -vv $(rpm -qa 'php*')
Run Code Online (Sandbox Code Playgroud)
删除这些RPM:
rpm -e $(rpm -qa 'php*')
Run Code Online (Sandbox Code Playgroud)
确认删除:
rpm -qa 'php*'
Run Code Online (Sandbox Code Playgroud)
这项工作的通常工具是xargs:
rpm -qa | grep 'php' | xargs rpm -e
Run Code Online (Sandbox Code Playgroud)
这将调用rpm -e标准输入中xargs作为参数命名的所有包.