linux - 仅在标题中带有关键字“mono”的文件上尝试在文件夹中使用 dpkg
问题描述
我目前正在尝试使用 dpkg 安装单声道,并使用 apt-get 安装同一文件夹中的所有其他文件,我知道我需要使用某种形式:
sudo grep 'mono' | dpkg -R --install >/dev/null
但是我有太多未知数来完成它并填写可能存在的任何空白,任何帮助将不胜感激!
解决方案
试试这个:
ls | grep "mono" | sudo xargs dpkg -R --install >/dev/null
ls 只会给出当前目录中的文件。您也可以使用ls -d *mono*
ls 和 grep 来代替,但我认为 ls 和 grep 更容易理解
grep 与您一样,但现在已从 ls 输入到 grep on。您可以尝试ls | grep "mono"
查看它选择了哪些文件。
然后将 sudo 移动到脚本的 dpkg 部分,以使 dpkg 以 root 身份运行。您拥有它的方式 grep 以 root 身份运行,dpkg 以您的用户身份运行
xargs 将接受您的任何输入,并将其放在下一个命令之后。如果命令行变得太大,它将考虑命令行长度限制并执行多个 dpkg 命令。请注意,如果您的文件名称中有空格,xargs 会将空格视为新文件的开头,您将遇到问题。有解决方案,但实际上,最简单的解决方案是没有包含空格的文件。
在此示例中,假设 grep "mono1.deb 和 "mono2.deb" 中有 2 个文件,执行的命令将是dpkg -R --install mono1.deb mono2.deb
. 如果由于某种原因您每次 dpkg 执行只需要一个 deb,您可以将其更改为...xargs -n1 dpkg...
它将运行dpkg -R --install mono1.deb
并且dpkg -R --install mono2.deb
>/dev/null
确保你不会得到任何输出。请注意,您仍然会收到错误消息!
推荐阅读
- mysql - Mysql json字段-按参数过滤
- r - 如何在R中做一个双循环?
- ios - ios 应用程序仅在从模拟器 xcode 手动启动时才会在启动屏幕后关闭
- arrays - 查找给定坐标和值的索引对
- c# - 将 csv 文件头和值转换为列表
- python - 尝试在 Seaborn 的 .boxplot() 中对分组数据进行箱线图绘制时,“AttributeError: 'DataFrameGroupBy' 对象没有属性 'get'”
- javascript - 重写 if..else 条件的方法
- ios - 使 NavBar 后面的按钮可点击
- android - Android 房间数据库查询不适用于 SQLCipher
- database - mongo sort_key_generator 阶段虽然有适当的索引