Fact-checked by Grok 2 weeks ago

xargs

xargs is a standard in operating systems that reads arguments from standard input—delimited by blanks or newlines—and constructs and executes command lines by appending those arguments to a specified and its initial arguments, thereby overcoming limitations on the maximum length of command lines or the number of arguments a single invocation can handle. It processes input until or a designated logical end-of-file marker, repeating executions as needed while respecting system limits such as {ARG_MAX} − 2048 bytes. Standardized in POSIX.1-2008 (IEEE Std 1003.1-2008 and The Open Group Base Specifications Issue 7), xargs supports quoting and escaping in input to handle special characters robustly. In practice, xargs is frequently paired with tools like find to apply operations to multiple files without exceeding argument limits; for example, find . -name "*.txt" | xargs [grep](/page/Grep) "pattern" searches for "pattern" across all .txt files in the current directory and subdirectories. The GNU implementation, part of the Findutils package, extends the baseline with features such as parallel execution via the -P option (allowing up to a specified number of processes to run simultaneously), null-delimited input handling with -0 for safe processing of filenames containing whitespace or quotes, and custom delimiters via --delimiter to support varied input formats. These enhancements improve performance and reliability, particularly in scripting and scenarios. Key options include -n to limit the number of arguments per command invocation, -L to restrict processing to a fixed number of input lines per execution, and -p for interactive prompting before each run, enabling user confirmation in potentially destructive operations. xargs also provides -I for replacing a placeholder string with input items, facilitating complex command construction, and --no-run-if-empty to skip execution when no input is present. Exit statuses indicate success (0), utility-specific errors (1-125), inability to invoke the utility (126), or utility not found (127); the version additionally uses 124 if a utility exits with 255, causing immediate termination. Overall, xargs remains a foundational for efficient command-line automation across POSIX-compliant systems and beyond.

Overview

Purpose and Functionality

xargs, short for "eXecute command with ARGumentS", is a command-line in operating systems that reads strings from standard input and constructs and executes command lines by appending those strings as arguments to a specified . It interprets input items delimited by unquoted blanks, unescaped blanks, newlines, or other configurable separators, while supporting quoting with double quotes or single quotes and escaping with backslashes to handle spaces and special characters within arguments. This allows xargs to safely transform streamed input into discrete arguments, making it essential for processing variable or large sets of data in shell scripts and pipelines. A primary role of xargs is to prevent the "argument list too long" error, which arises when commands such as rm, echo, or grep receive input exceeding the system's ARG_MAX limit—typically around 128 KB to 2 MB depending on the implementation—directly via pipes or shell expansions. By batching input into manageable chunks and invoking the target command iteratively, xargs ensures each execution stays within these constraints, enabling efficient handling of extensive lists without truncation or failure. For instance, it commonly processes output from find to delete files, as in find . -name "*.tmp" | xargs rm, avoiding direct piping limitations. In terms of core functionality, xargs builds command lines by prepending user-specified operands to the read arguments, executes them repeatedly until input is exhausted, and optimizes by minimizing invocations where possible to improve . It supports features like custom argument replacement strings (via the -I option) and, in the implementation, parallel execution of commands across multiple processes (via the -P option), further enhancing its utility for scalable in Unix pipelines. Overall, xargs bridges the gap between stream-oriented input and argument-based commands, facilitating robust in environments with potentially voluminous or complex inputs.

History and Standards

The xargs utility originated in the Programmer's Workbench (PWB/UNIX) 1.0 release from Bell Laboratories in July 1977, where it was developed by Herb Gellis to address limitations in command-line argument passing imposed by the and in early Unix systems. This version of Unix, based on the Sixth Edition, introduced xargs as a core utility for batching input into executable command lines, enabling more efficient handling of large sets of arguments that exceeded the typical invocation limits of around 512 bytes or fewer filenames. The name "xargs" derives from "eXecute command with ARGumentS", reflecting its primary role in constructing and running commands from streamed inputs rather than direct standard input processing. Over the following decades, xargs evolved through parallel development in the Berkeley Software Distribution (BSD) and AT&T's System V Unix lineages. Initially, BSD systems favored the similar "" utility for basic functionality, but xargs was later adopted and enhanced in BSD releases starting from 4.3BSD-Reno in 1990, incorporating refinements for better integration with tools like find. In System V, xargs became a standard component from Release 3 onward in the early , with improvements to argument delimiting and error handling to support commercial Unix environments. The GNU implementation, part of the findutils package since its initial releases in the early 1990s, further extended the utility with features such as via the -P option, allowing multiple concurrent executions to leverage multi-core systems. xargs has been formally specified in the POSIX.1-2008 standard (IEEE Std 1003.1-2008) and subsequent revisions, ensuring a baseline of required behavior including argument construction from standard input, support for options like -n for maximum arguments per command, and handling of quoted strings. This standardization promotes portability across Unix-like systems, including modern distributions, macOS (derived from BSD), and traditional Unix variants. Ports to non-Unix platforms, such as Windows via and native Win32 implementations in collections like , maintain compatibility while adapting to environment-specific constraints like path separators.

Syntax

Basic Syntax

The xargs utility constructs and executes command lines by reading arguments from standard input and appending them to a specified command, following the general form xargs [options] [command [initial-arguments]]. Here, command denotes the utility to be invoked (such as rm for file removal), while initial-arguments represent any fixed arguments provided directly on the command line that precede those derived from input; if no command is specified, xargs defaults to executing echo, which outputs the arguments as is. In the absence of input from standard input, xargs typically executes the command once using only the initial-arguments (or just echo if none are provided), though some implementations, such as GNU xargs, support the --no-run-if-empty option to prevent execution in this case. The exit status of xargs indicates the outcome of its operations: it returns 0 if all invocations of the command succeed, values from 1 to 125 if the command assembly fails or the command returns a non-zero status, 126 if the command is found but cannot be invoked, and 127 if the command is not found, as per the POSIX standard. Certain implementations extend this with more granular codes, such as 123 for command failure with status 1–125, 124 for status 255, and 125 for signal termination. For POSIX compliance, must properly process input containing quoted strings—enclosed in double quotes or single quotes, which exclude newlines—and backslashes used to escape or other characters, ensuring accurate argument reconstruction before passing them to the command. handling, typically whitespace or newlines, is fundamental to this parsing but configurable via options.

Input Sources

By default, the xargs utility reads input items from standard input (stdin), continuing until it reaches (EOF). In the GNU implementation, blank lines in the input are ignored during this process. An alternative input source is provided by the GNU-specific -a or --arg-file option, which reads items from the specified file instead of stdin, treating the file's contents as the input stream while leaving stdin unchanged for command execution. When reading from standard input (without this option), stdin is redirected from for the executed commands to prevent interference. Input items are initially parsed as sequences delimited by unquoted whitespace (spaces or tabs) or newlines, with single or double quotes enclosing strings to protect delimiters, and backslashes escaping them or quotes. Double-quoted strings exclude newlines but allow s, while single-quoted strings treat all characters literally except the closing quote. Backslashes the next character, including whitespace, quotes, or another backslash, and an escaped newline may continue the item across lines. Processing stops upon detecting EOF, at which point any remaining buffered items are handled according to the utility's rules. If the input is empty (no non-blank content), the specified command is run once by default, though this can be suppressed with the -r or --no-run-if-empty option in xargs. The utility reads input in internal chunks for efficiency but parses and processes it item-by-item or line-by-line depending on options, ensuring compatibility with piped data streams. Custom delimiters, such as null bytes, can be used to modify this parsing behavior.

Options

Delimiter and Quoting Options

xargs reads items from standard input by default, treating whitespace (blanks and newlines) as delimiters while honoring shell-like rules, where single or double quotes and backslashes protect blanks and other special characters to form multi-word arguments. Blank lines in the input are ignored, and the mechanism ensures that embedded spaces or quotes in items are preserved correctly during . The -0 or --null option modifies this behavior by using the (ASCII NUL, \0) as the instead of whitespace, rendering quotes and backslashes non-special so all characters in input items are treated literally. This option also disables any string processing and is especially suited for handling filenames output by commands like find with the -print0 option, as it reliably separates items even if they contain spaces, newlines, or other whitespace. With the -d delim or --delimiter=delim option, a user-specified single character (which may be given as an or escape code) serves as the , again treating quotes and backslashes as ordinary characters without quote processing. Consequently, this disables the default quoting behavior, ensuring literal interpretation of the input up to the delimiter, and it too deactivates string handling. Common delimiters include the character for line-based input. The -E eof-str or --eof[=eof-str] option introduces an string that, when encountered in the input, causes xargs to cease reading further, ignoring any subsequent content. Without this option, no such string exists, and xargs continues until the end of input is reached naturally. This feature is incompatible with -0 or -d, as those options disable EOF string recognition. For flexible command templating, the -I replace-str or --replace[=replace-str] option (with a default replace-str of "{}") substitutes each input item for every occurrence of replace-str within the provided command arguments. In this mode, input items are delimited by newlines (unquoted blanks do not terminate them), and it enforces one item per command invocation while using newlines to separate items, bypassing the standard whitespace splitting. This quoting preservation aligns with the default rules unless overridden by other options like -d.

Argument Control Options

The -n or --max-args=max-args option limits the number of arguments passed to each invocation of the command to at most max-args. This ensures that no more than the specified number of input items are grouped together, preventing command lines from becoming excessively long due to argument volume. By default, without this option, xargs uses as many arguments as possible per line, subject to system-imposed limits such as ARG_MAX, the maximum length of arguments to the exec functions. If the -s option sets a character limit that is reached before max-args arguments can be included, fewer than max-args will be used unless the -x option is also specified, in which case xargs exits immediately. The -s or --max-chars=max-chars option restricts the total number of characters in the arguments for each command line to at most max-chars, including the command name, any initial arguments provided directly to xargs, and terminating null characters if null-delimited input is used. This provides fine-grained control over command-line length to avoid exceeding operating system limits like ARG_MAX, which can be queried using the --show-limits option in GNU xargs. The default value for max-chars is the system's ARG_MAX value, ensuring compatibility while allowing users to impose stricter limits for safety or portability. When combined with -n, the -s option takes precedence if the character limit is hit first, potentially reducing the number of arguments below the maximum specified by -n. These options together help manage argument overflow by batching input into subsets that fit within both numerical and size constraints. The -L or --max-lines=max-lines option processes up to max-lines non-empty lines of input per command invocation, treating trailing blanks on a line as continuing it to the next for logical grouping. This is particularly useful for line-based input where each line represents a single argument, limiting the batch size in terms of input lines rather than characters or argument count. The -L form is the preferred modern syntax; the older -l synonym is deprecated in xargs and some other implementations, though it may default to 1 line if no value is provided in versions. Importantly, -L implies the -x option, causing xargs to with an if exactly max-lines cannot be processed without exceeding other limits. Like other argument controls, it interacts with system ARG_MAX to ensure the resulting command line remains executable. The -x or --exit option instructs xargs to halt execution and a non-zero if the size or limits imposed by -s, -n, or -L cannot be fully met for a batch. Without -x, xargs proceeds by using fewer or characters than specified to fit within the constraints, allowing partial batches. This option is automatically enabled when -L or the -I replacement-string option is used, providing strict enforcement for scenarios requiring exact batching. In combination with -n and -s, -x prevents any command invocation that would truncate input, ensuring reliability in automated pipelines where incomplete processing could lead to errors. Overall, these control options collectively safeguard against command-line overflows by integrating user-defined limits with underlying boundaries like ARG_MAX.

Execution Control Options

The execution control options in xargs manage the runtime behavior of command invocations, including parallelism, verbosity, conditional skipping, user interaction, and response to failures, allowing users to tailor how processes are launched and monitored without altering input processing rules. The -P max-procs or --max-procs=max-procs option enables parallel execution by running up to max-procs processes simultaneously, with a default of 1; specifying 0 allows unlimited processes based on system resources. This parallelism can significantly accelerate batch operations on large inputs, though it requires careful resource management to avoid overload. Additionally, signals like SIGUSR1 and SIGUSR2 can dynamically adjust the number of active processes during runtime. For debugging and logging, the -t or --verbose option prints each constructed command line to before execution, providing visibility into the exact invocations without affecting output. This is particularly useful for verifying argument assembly in complex pipelines. The --no-run-if-empty (or -r) option prevents command execution if the standard input contains no non-blank items, overriding the default behavior of running the command once even without input. This ensures efficient skipping of unnecessary invocations in scripts where empty results are possible. The -p or --interactive option adds user oversight by prompting for confirmation before each command line, reading a response from the terminal and proceeding only if it begins with 'y' or 'Y'; it implicitly enables -t for command display during prompts. Regarding failure handling, xargs continues processing subsequent commands even if some invocations fail with non-zero , promoting robustness in batch operations; however, if any command exits with status 255, xargs immediately stops reading further input and issues an error on . This continuation behavior holds unless combined with argument enforcement options like -x, which may cause early termination if input subsets cannot be fully processed. Upon completion, xargs returns an reflecting overall success or specific failure modes, such as 123 if any invocation of the command exited with status 1–125, or 124 if the command exited with status 255.

Argument Processing

Placement of Arguments

By default, xargs appends the input items to the end of the command line following any initial arguments specified on the command line. This behavior ensures that the command is executed with the provided initial arguments first, followed by the processed items from standard input, up to the system's argument length limits. The -I option introduces a replacement mechanism, allowing users to specify a placeholder string (such as '{}') that is replaced by each input item in the initial arguments. This enables flexible positioning of the input items, such as placing them before the command, after specific arguments, or even within multi-part command lines. When -I is used, xargs reads input line-by-line (terminated by newlines or NUL characters if -0 is also specified), implying -L 1 for one item per invocation, and replaces all occurrences of the placeholder string with the current input item during each command execution. This is particularly useful for commands that require arguments in precise locations, as multiple placeholders in the initial arguments will all be substituted with the same single input item. For more complex scenarios involving variable numbers of arguments or shell-specific processing, xargs can invoke a via sh -c, where the replacement string is embedded in the shell command to leverage features like @ for argument expansion. For instance, this allows handling multiple related operations on each item while preserving the input as positional parameters, but requires careful construction to shift arguments correctly (e.g., using a dummy $0). However, this method introduces [security](/page/Security) risks, particularly with unquoted or untrusted input containing shell metacharacters, which could enable command injection or unintended expansion; proper [quoting](/page/Quote) of variables like "@" is essential to treat each input item as a single unit and mitigate such vulnerabilities. xargs preserves in input items by recognizing protected blanks via double quotes, single quotes, or backslashes during , ensuring items with spaces are handled as single arguments. Under the -I option, each input item is inherently treated as an indivisible unit, bypassing further delimiting and maintaining its integrity regardless of internal whitespace, which aligns with subset handling for grouping multiple items into subsequent sections.

Handling Subsets of Arguments

The xargs utility employs options such as -n, -L, and -s to divide input into manageable subsets, thereby invoking the target command multiple times to avoid exceeding system-imposed limits on command-line length or argument count. This batching mechanism ensures that large volumes of input are processed without failure due to constraints like {ARG_MAX}, the maximum bytes available for arguments to the exec family of functions. By default, xargs aims to maximize arguments per invocation while respecting these limits, but explicit controls allow precise subsetting for reliability. For line-based subsets, the -L option specifies the maximum number of non-empty input lines to include per command invocation, treating each line as a potential argument unless modified by delimiters. If fewer than the specified lines remain, the final invocation uses the available remainder. This approach is particularly useful when input is structured by newlines, such as file lists from find, enabling processing in fixed line groups without parsing individual arguments. Argument-based subsets are controlled by the -n option, which limits each invocation to at most the given number of arguments, cycling through the input stream as needed. Combined with -s for character length limits, it prevents overflow by truncating subsets if the total size—including the command and initial arguments—exceeds the threshold. For instance, find . -name "*.tmp" | xargs -n 50 rm batches filenames into groups of up to 50 for deletion, mitigating risks from commands with strict argument caps. Common use cases include grouping file operations to evade per-command limits, such as batch-deleting numerous files generated by a search. Subsets can also facilitate parallelization via the -P option, distributing batches across multiple processes for concurrent handling. However, each subset triggers a new process creation, introducing overhead that benefits I/O-bound tasks like manipulation but may reduce efficiency for CPU-intensive workloads due to repeated initialization.

Examples

Basic Usage Examples

One common introductory use of xargs is to echo input arguments, transforming multi-line or space-separated input into a single command line. For instance, the command echo "file1 file2" | xargs echo reads the input and executes echo file1 file2, producing the output file1 file2. To delete files matching a pattern, xargs can process the output of find as arguments to rm. The command find . -name "*.tmp" | xargs rm locates temporary files in the current directory and subdirectories, then removes them by passing their names to rm. For counting words in individual input items, xargs can limit arguments per invocation using the -n option. Running echo "hello world" | xargs -n1 [wc](/page/WC) -w executes -w once for "hello" (outputting 1) and once for "world" (outputting 1), allowing separate processing of each word. When no command is specified, xargs defaults to using , which simply reprints the input arguments. Thus, find . -print | xargs lists all files and directories in the current tree on a single line, equivalent to find . -print | xargs [echo](/page/Echo). xargs also integrates well in pipelines for file operations, such as concatenating specific files. The sequence ls | grep .txt | xargs cat lists files, filters for those ending in .txt, and passes their names to cat, which outputs the combined contents of all matching text files.

Advanced Usage Examples

One advanced application of xargs involves handling filenames that may contain spaces or special characters by using null-delimited input with the -0 option, which pairs effectively with tools like find that support -print0. For instance, to safely delete files in the current directory regardless of whitespace in their names, the command find . -print0 | xargs -0 rm processes the null-separated output from find, ensuring each filename is treated as a single argument without splitting on spaces. Another powerful feature is the -I option for replacement strings, allowing xargs to insert input arguments into specific positions within a command, which is useful for operations like batch renaming. The command echo "file1 file2" | xargs -I {} mv {} {}.bak reads the filenames, replaces {} with each one in turn, and executes mv file1 file1.bak followed by mv file2 file2.bak, creating backups for each file in separate invocations. For improved performance on large sets of files, xargs supports parallel execution via the -P option combined with -n to control the number of arguments per process. To delete up to 8 files at a time across 4 parallel rm processes while handling potential whitespace issues, use find . -print0 | xargs -0 -P4 -n8 rm; this launches multiple instances of rm simultaneously, batching arguments to avoid command-line length limits and speed up the operation on multicore systems. The -L option enables processing input on a per-line basis, limiting each command to a specified number of lines from the input, which is ideal for grouping related items. For example, echo -e "line1\nline2\nline3\nline4" | xargs -L2 echo "Group:" reads the input lines and executes echo "Group:" line1 line2 followed by echo "Group:" line3 line4, demonstrating batch processing of multiple lines per invocation. To debug or verify command construction, the -t option provides verbose output by printing each generated command to standard error before execution, often combined with -n for controlled batching. Running printf "a b c\nd e" | xargs -t -n2 echo outputs echo a b, echo c d, and echo e to stderr, then executes them, allowing users to inspect how arguments are grouped without affecting the primary output.

Common Problems and Solutions

Separator and Encoding Issues

The default delimiters in xargs are blanks (spaces or tabs) and newlines, which can lead to incorrect splitting of input items containing spaces or quotes, such as filenames with embedded whitespace. This behavior causes xargs to treat each whitespace-separated token as a separate argument, potentially resulting in commands operating on incomplete or fragmented paths. To mitigate this, the -0 option (or --null) instructs xargs to use the (ASCII NUL) as the instead of whitespace, disabling special treatment of quotes and backslashes. This is particularly effective when paired with tools like find using -print0, which outputs null-terminated filenames to avoid conflicts. A common for locale-dependent issues in some tools is to invoke xargs with LC_ALL=, which forces single-byte (ASCII) interpretation, treating the input as raw bytes without multibyte conversion. in input to xargs allows protection of using double quotes, single quotes, or , but unprotected quotes can trigger parsing errors, such as unmatched quote complaints, leading to failed command construction. The -d option, which specifies a custom , bypasses quote and processing entirely, treating all characters literally up to the delimiter; this ignores any protective in the input, which may expose embedded delimiters or special characters to unintended splitting. Note that the -d option does not support multibyte characters for the delimiter. Prior to POSIX standardization (IEEE Std 1003.1-1990), xargs implementations across Unix variants exhibited variations in quoting rules and end-of-input handling, with some lacking consistent support for escaped newlines or logical EOF markers. xargs aligns with for quoting but evolved its defaults over time, such as removing the implicit EOF marker in version 4.2.9 to match flexibility. Best practices for handling file lists emphasize using null delimiters via -0 to robustly manage spaces, quotes, and characters, as this approach is immune to most parsing ambiguities. Verification can be performed by substituting the target command with to preview argument construction without executing side effects.

Limitations and Alternatives

xargs lacks built-in for complex scripting constructs, such as conditional logic or , as it is primarily designed to construct and execute command lines from standard input arguments rather than serve as a full scripting . This limitation often requires users to combine xargs with shell scripts for more advanced control flows. Additionally, using xargs with constructs like sh -c for custom command execution can introduce security risks if the input is untrusted, potentially allowing arbitrary , though specific mitigations involve careful input validation. A notable security concern arises in pipelines like find | xargs rm, where there is a time-of-check-to-time-of-use (TOCTTOU) : the list of files is generated before execution, enabling malicious actors to manipulate the filesystem in the interim, such as replacing files with symlinks to sensitive locations. For performance, xargs operates serially by default, leading to process overhead when handling very large inputs; while the -P option enables parallelism, it does not scale as efficiently as specialized tools for massive datasets and lacks native mechanisms for aggregating errors across invocations. Furthermore, xargs imposes limits on command-line length to comply with system constraints like ARG_MAX, which can be as low as 4096 bytes, potentially requiring multiple invocations and adding overhead for extensive argument lists. Modern alternatives address these constraints effectively. extends xargs functionality with advanced parallelism, job control, output ordering, and better handling of special characters, making it suitable for complex, resource-intensive tasks while maintaining compatibility as a . For simpler cases without piping, find -exec offers direct execution per file or in batches via {} +, avoiding the TOCTTOU risks of xargs pipelines and providing portability across systems. Shell loops, such as for or while read constructs in , are preferable for scenarios requiring scripting logic or output capture from non-file inputs, though they may be less efficient for pure argument expansion from streams. xargs should be avoided for non-file inputs prone to whitespace or newline issues, or when precise output capture per argument is needed, as it prioritizes batching over individual processing; it remains ideal for straightforward argument extension in pipelines. As of 2025, the core xargs implementation remains stable across POSIX-compliant systems, but its integration with container orchestration tools like underscores the growing preference for alternatives like in modern workflows for enhanced and .

References

  1. [1]
    xargs - The Open Group Publications Catalog
    The xargs utility shall construct a command line consisting of the utility and argument operands specified followed by as many arguments read in sequence ...
  2. [2]
    GNU Findutils 4.10.0
    This manual documents version 4.10.0 of the GNU utilities for finding files that match certain criteria and performing various operations on them.
  3. [3]
    xargs - The Open Group Publications Catalog
    DESCRIPTION. The xargs utility shall construct a command line consisting of the utility and argument operands specified followed by as many arguments read in ...
  4. [4]
    xargs(1) - Linux manual page - man7.org
    This manual page documents the GNU version of xargs. xargs reads items from the standard input, delimited by blanks (which can be protected with double or ...
  5. [5]
    systems:pwb [Unix Heritage Wiki]
    PWB/UNIX 1.0, released in July, 1977 was based on 6th Edition Unix. Notable “firsts” in PWB include SCCS, the remote job entry batch-submission system RJE, the ...
  6. [6]
    xargs(1) — findutils — Debian testing
    Aug 10, 2024 · HISTORY¶. The xargs program was invented by Herb Gellis at Bell ... Full documentation <https://www.gnu.org/software/findutils/xargs> or ...
  7. [7]
    xargs(1) - OpenBSD manual pages
    The xargs utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification. The flags [ -IL ] are marked by IEEE Std 1003.1-2008 (“POSIX.1”) ...
  8. [8]
    findutils - GNU Project - Free Software Foundation (FSF)
    The xargs program builds and executes command lines by gathering together arguments it reads on the standard input. Most often, these arguments are lists of ...
  9. [9]
  10. [10]
    Native Win32 ports of some GNU utilities
    Here are some ports of common GNU utilities to native Win32. In this context, native means the executables do only depend on the Microsoft C-runtime (msvcrt.dll) ...
  11. [11]
    xargs options (GNU Findutils 4.10.0)
    For example, ' xargs -- --help ' runs the command ' --help ' (found in PATH ) instead of printing the usage text, and ' xargs -- --mycommand ' runs the ...
  12. [12]
  13. [13]
    Invoking the shell from xargs (GNU Findutils 4.10.0)
    Invoking a shell from xargs is a good way of performing such manipulations. However, some care must be taken to prevent problems.Missing: invocation | Show results with:invocation
  14. [14]
    GNU findutils 4.4.0 is released
    Mar 15, 2008 · ** Functional ehnahcements to xargs While there are a number of bug fixes in xargs ... multi-byte character environments such as UTF-8. Previously ...
  15. [15]
    Locale Related Issues - Linux From Scratch!
    ... UTF-8 locale. Non-ASCII characters will be ... Many programs were written in an older era where multibyte locales were not common. ... xargs checkman.sh for a in " ...
  16. [16]
    What would break if the C locale was UTF-8 instead of ASCII?
    Mar 12, 2013 · If the C locale was modified, this would call many applications to misbehave. For example, they might reject input that is invalid UTF-8 ...How do I re-encode a mixed encoded text fileWhat are the effects of setting locale to a multi-byte encoding like ...More results from unix.stackexchange.comMissing: xargs mixed
  17. [17]
    [PDF] NAME DIFFERENCES BETWEEN GNU Parallel AND ALTERNATIVES
    Quoting in xargs works like -q in GNU parallel. This means composed commands and redirection require using bash -c.