From a05a326b0cd7c4146e60ea4d66440d4a28dfb41a Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Wed, 12 Dec 2012 19:54:12 +0000 Subject: readlink: support multiple command line arguments This allows efficient processing of multiple files, while also increasing compatibility with BSD's readlink(1). We also add the -z, --zero option to delimit output items with the NUL character which disambiguates output in the presence of '\n' characters. * src/readlink.c (usage): Add the --zero description, and also adjust the description of --no-newline accordingly. (main): Handle the -z option and iterate over multiple arguments. Also as in commit v8.15-24-g9d46b25 we use fputs() and putchar() rather than printf() for performance reasons. * doc/coreutils.texi (readlink invocation): Document the new --zero option, adjust the --no-newline description, and tweak the general info to indicate multiple files are supported. * tests/readlink/multi.sh: A new test for the new functionality. * tests/local.mk: Reference the new test. * man/readlink.x: Adjust the summary and also reference realpath. * NEWS: Mention the improvement. * THANKS.in: Suggested by Aaron Davies. --- doc/coreutils.texi | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'doc/coreutils.texi') diff --git a/doc/coreutils.texi b/doc/coreutils.texi index 5f8fad774..0646f8242 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -9737,20 +9737,20 @@ Set the default SELinux security context to be used for created files. @item Readlink mode -@command{readlink} outputs the value of the given symbolic link. +@command{readlink} outputs the value of the given symbolic links. If @command{readlink} is invoked with an argument other than the name of a symbolic link, it produces no output and exits with a nonzero exit code. @item Canonicalize mode -@command{readlink} outputs the absolute name of the given file which contains +@command{readlink} outputs the absolute name of the given files which contain no @file{.}, @file{..} components nor any repeated separators (@file{/}) or symbolic links. @end table @example -readlink [@var{option}] @var{file} +readlink [@var{option}]@dots{} @var{file}@dots{} @end example By default, @command{readlink} operates in readlink mode. @@ -9789,7 +9789,8 @@ as a directory. @itemx --no-newline @opindex -n @opindex --no-newline -Do not output the trailing newline. +Do not print the output delimiter, when a single @var{file} is specified. +Print a warning if specified along with multiple @var{file}s. @item -s @itemx -q @@ -9807,6 +9808,12 @@ Suppress most error messages. @opindex --verbose Report error messages. +@item -z +@itemx --zero +@opindex -z +@opindex --zero +Separate output items with @sc{nul} characters. + @end table The @command{readlink} utility first appeared in OpenBSD 2.1. -- cgit v1.2.3-54-g00ecf