<varlistentry>
<term>
<command>cat</command>
- <replaceable>FILE</replaceable>|<replaceable>@DEVICE</replaceable>…
+ <optional><replaceable>FILE</replaceable>|<replaceable>@DEVICE</replaceable>…</optional>
</term>
- <listitem><para>Show network configuration files. This command honors
- the <literal>@</literal> prefix in the same way as <command>edit</command>.</para>
+ <listitem>
+ <para>Show network configuration files. This command honors the <literal>@</literal> prefix in the
+ same way as <command>edit</command>. When no argument is specified,
+ <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ and its drop-in files will be shown.</para>
- <xi:include href="version-info.xml" xpointer="v254"/></listitem>
+ <xi:include href="version-info.xml" xpointer="v254"/>
+ </listitem>
</varlistentry>
<varlistentry>
int verb_cat(int argc, char *argv[], void *userdata) {
_cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
+ char **args = strv_skip(argv, 1);
int r, ret = 0;
pager_open(arg_pager_flags);
+ if (strv_isempty(args))
+ return conf_files_cat(NULL, "systemd/networkd.conf", CAT_FORMAT_HAS_SECTIONS);
+
bool first = true;
- STRV_FOREACH(name, strv_skip(argv, 1)) {
+ STRV_FOREACH(name, args) {
_cleanup_strv_free_ char **dropins = NULL;
_cleanup_free_ char *path = NULL;
const char *link_config;
" reconfigure DEVICES... Reconfigure interfaces\n"
" reload Reload .network and .netdev files\n"
" edit FILES|DEVICES... Edit network configuration files\n"
- " cat FILES|DEVICES... Show network configuration files\n"
+ " cat [FILES|DEVICES...] Show network configuration files\n"
" mask FILES... Mask network configuration files\n"
" unmask FILES... Unmask network configuration files\n"
" persistent-storage BOOL\n"
{ "reconfigure", 2, VERB_ANY, VERB_ONLINE_ONLY, verb_reconfigure },
{ "reload", 1, 1, VERB_ONLINE_ONLY, verb_reload },
{ "edit", 2, VERB_ANY, 0, verb_edit },
- { "cat", 2, VERB_ANY, 0, verb_cat },
+ { "cat", 1, VERB_ANY, 0, verb_cat },
{ "mask", 2, VERB_ANY, 0, verb_mask },
{ "unmask", 2, VERB_ANY, 0, verb_unmask },
{ "persistent-storage", 2, 2, 0, verb_persistent_storage },