我正在为每个站点的多台机器进行文件部署,因此将所有文件压缩一次并部署到每台机器要容易得多。但是我想删除所有其他 PC 的配置。
zip 包含各种通用文件,以及每台机器的特定配置。
例如,较少的 zip 将提供:
generic1.xjson
generic2.xjson
generic3.xjson
generic1.yjson
generic2.yjson
PC-1-1.json
PC-1-2.json
PC-1-3.json
因此,我希望删除每个不包含 PC 主机名的 PC-1-*.json。
(PC 主机名总是正好是 PC-1-1 等)
我试图按照以下方式做一些事情:
ls -1 | grep -v *$hostname* | xargs -0 rm *PC-*-*.json
这将删除所有文件,包括当前主机名的文件。
寻找我在这方面有什么问题,或者是否有更好的方法来执行此功能。
您的命令无法按预期工作,因为
rm *PC-*-*.json
! 它将由 shell 扩展并包含所有PC-x-x.json
文件。其实你用
xargs
错了。像这样的东西应该可以完成这项工作:
当你确定它有效时
echo
改变。rm
更好的解决方案是使用
find
:-i
。rm