我正在运行以下命令来列出服务器上安装的软件包。
$> dpkg -l
这很好,但是当我这样做时
$> dpkg -l > list_of_packages_installed
我只得到 106 列数据,其余的被截断。所以所有的行都在那里,但不是所有的数据列。我在这里一定有一些简单的东西吗?
我正在运行以下命令来列出服务器上安装的软件包。
$> dpkg -l
这很好,但是当我这样做时
$> dpkg -l > list_of_packages_installed
我只得到 106 列数据,其余的被截断。所以所有的行都在那里,但不是所有的数据列。我在这里一定有一些简单的东西吗?
变量 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 之间是不同的,并且还取决于版本。有一些关于这个主题的错误报告。例如,squeeze 中的 dpkg 将设置列宽,以便如果环境中未设置 COLUMNS 并且输出不是 tty,则可以完整显示所有包名称和版本。
问候