0

直接在我的 Debian 机器上,我可以运行以下命令来显示手动安装的软件包:

aptitude search '!~M ~i'

这很好用。如果我从远程机器上 SSH 并运行命令,我也会得到相同的结果。

但是,当我将命令作为批处理运行时,它不会产生相同的结果。

ssh user@server aptitude search '!~M ~i'

由于该过程需要一些时间来运行,因此我ps aux | grep aptitude在运行这两个变体时执行,结果似乎是相同的。

我究竟做错了什么?

PS。我知道 dpkg -L 可以产生此信息,但这只是损坏的最小示例,我也打算用来!~pstandard !~pimportant !~prequired过滤掉基本包,我不相信 dpkg 可以做到(但如果可以的话,欢迎使用 dpkg 的解决方案。)

4

2 回答 2

1

使用来自Bash - Escaping SSH commands的信息,我能够创建一个有效的命令:

ssh user@server $(printf '%q ' aptitude search '!~M ~i')
于 2014-04-25T17:00:00.343 回答
1

如果目标是更新的 debian/ubuntu,您可以使用:

ssh user@server apt-mark showmanual

于 2017-09-22T09:22:26.283 回答