我正在运行以下命令列出服务器上安装的软件包。
$> dpkg -l
这很好,但是当我这样做时
$> dpkg -l > list_of_packages_installed
我只获得106列数据,其余数据被截断。所以所有的行都在那里但不是所有的数据列。我必须在这里找到一些简单的东西吗?
答案 0 :(得分:1)
变量COLUMN确实对此负责。 dpkg(8)的联机帮助页包含在“环境”部分下:
COLUMNS Sets the number of columns dpkg should use when display- ing formatted text. Currently only used by -l.
如果在您的环境中设置了COLUMNS,那么dpkg将使用它。你可以查看 这个命令:
env | grep ^COLUMNS=
如果该命令输出类似
的内容COLUMNS=80
然后您知道此变量已在您的环境中设置。 请注意,此命令:
echo $COLUMNS
不会告诉您它是环境还是shell变量。 COLUMNS可以设置为shell变量,而不会导出到环境中。使用此命令:
COLUMNS=$COLUMNS dpkg -l > k
你明确地将变量放在dpkg的环境中。 如果它不在您的环境中,那么它将仅用于此命令。 另请注意,dpkg在这方面的行为是不同的 ubuntu和debian也取决于版本。有几个 有关此主题的错误报告。例如,挤压中的dpkg将设置 列宽,以便可以完整显示所有包名称和版本 如果未在环境中设置COLUMNS且输出不是tty。
此致