尝试仅对标题中包含关键字 'mono' 的文件在文件夹中使用 dpkg

Trying to use dpkg within a folder only on files with the keyword 'mono' in the title

我目前正在尝试使用 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 运行s 作为 root 和 dpkg 作为你的用户

xargs 将接受您的任何输入,并将其放在下一个命令之后。它将考虑命令行长度限制并在命令行变得太大时执行多个 dpkg 命令。请注意,如果您的文件名称中包含 space,xargs 会将 space 视为新文件的开头,您将遇到问题。有解决方案,但实际上,最简单的解决方案是不包含 spaces.

的文件

在这个例子中,假设有 2 个文件来自 grep“mono1.deb 和“mono2.deb”,执行的命令将是 dpkg -R --install mono1.deb mono2.deb。如果出于某种原因你只想每个 dpkg 执行一个 deb 你可以将它更改为 ...xargs -n1 dpkg... 它将 运行 dpkg -R --install mono1.deb 并且 dpkg -R --install mono2.deb

>/dev/null 确保您不会得到任何输出。请注意,您仍然会遇到错误!