logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

xargs.1p (21536B)


  1. '\" et
  2. .TH XARGS "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
  3. .\"
  4. .SH PROLOG
  5. This manual page is part of the POSIX Programmer's Manual.
  6. The Linux implementation of this interface may differ (consult
  7. the corresponding Linux manual page for details of Linux behavior),
  8. or the interface may not be implemented on Linux.
  9. .\"
  10. .SH NAME
  11. xargs
  12. \(em construct argument lists and invoke utility
  13. .SH SYNOPSIS
  14. .LP
  15. .nf
  16. xargs \fB[\fR-ptx\fB] [\fR-E \fIeofstr\fB] [\fR-I \fIreplstr\fR|-L \fInumber\fR|-n \fInumber\fB]\fR
  17. \fB[\fR-s \fIsize\fB] [\fIutility \fB[\fIargument\fR...\fB]]\fR
  18. .fi
  19. .SH DESCRIPTION
  20. The
  21. .IR xargs
  22. utility shall construct a command line consisting of the
  23. .IR utility
  24. and
  25. .IR argument
  26. operands specified followed by as many arguments read in sequence from
  27. standard input as fit in length and number constraints specified by the
  28. options. The
  29. .IR xargs
  30. utility shall then invoke the constructed command line and wait for its
  31. completion. This sequence shall be repeated until one of the following
  32. occurs:
  33. .IP " *" 4
  34. An end-of-file condition is detected on standard input.
  35. .IP " *" 4
  36. An argument consisting of just the logical end-of-file string
  37. (see the
  38. .BR \-E
  39. .IR eofstr
  40. option) is found on standard input after double-quote processing,
  41. <apostrophe>
  42. processing, and
  43. <backslash>-escape
  44. processing (see next paragraph). All arguments up to but not including
  45. the argument consisting of just the logical end-of-file string shall be
  46. used as arguments in constructed command lines.
  47. .IP " *" 4
  48. An invocation of a constructed command line returns an exit status of
  49. 255.
  50. .P
  51. The application shall ensure that arguments in the standard input are
  52. separated by unquoted
  53. <blank>
  54. characters, unescaped
  55. <blank>
  56. characters, or
  57. <newline>
  58. characters. A string of zero or more non-double-quote (\c
  59. .BR '\&"' )
  60. characters and non-\c
  61. <newline>
  62. characters can be quoted by enclosing them in double-quotes. A string
  63. of zero or more non-\c
  64. <apostrophe>
  65. (\c
  66. .BR '\e\(aq' )
  67. characters and non-\c
  68. <newline>
  69. characters can be quoted by enclosing them in
  70. <apostrophe>
  71. characters. Any unquoted character can be escaped by preceding it with a
  72. <backslash>.
  73. The utility named by
  74. .IR utility
  75. shall be executed one or more times until the end-of-file is reached or
  76. the logical end-of file string is found. The results are unspecified if
  77. the utility named by
  78. .IR utility
  79. attempts to read from its standard input.
  80. .P
  81. The generated command line length shall be the sum of the size in bytes
  82. of the utility name and each argument treated as strings, including a
  83. null byte terminator for each of these strings. The
  84. .IR xargs
  85. utility shall limit the command line length such that when the command
  86. line is invoked, the combined argument and environment lists (see the
  87. .IR exec
  88. family of functions in the System Interfaces volume of POSIX.1\(hy2017) shall not exceed
  89. {ARG_MAX}\-2\|048
  90. bytes. Within this constraint, if neither the
  91. .BR \-n
  92. nor the
  93. .BR \-s
  94. option is specified, the default command line length shall be at least
  95. {LINE_MAX}.
  96. .SH OPTIONS
  97. The
  98. .IR xargs
  99. utility shall conform to the Base Definitions volume of POSIX.1\(hy2017,
  100. .IR "Section 12.2" ", " "Utility Syntax Guidelines".
  101. .P
  102. The following options shall be supported:
  103. .IP "\fB\-E\ \fIeofstr\fR" 10
  104. Use
  105. .IR eofstr
  106. as the logical end-of-file string. If
  107. .BR \-E
  108. is not specified, it is unspecified whether the logical end-of-file
  109. string is the
  110. <underscore>
  111. character (\c
  112. .BR '_' )
  113. or the end-of-file string capability is disabled. When
  114. .IR eofstr
  115. is the null string, the logical end-of-file string capability shall be
  116. disabled and
  117. <underscore>
  118. characters shall be taken literally.
  119. .IP "\fB\-I\ \fIreplstr\fR" 10
  120. Insert mode:
  121. .IR utility
  122. is executed for each logical line from standard input. Arguments in the
  123. standard input shall be separated only by unescaped
  124. <newline>
  125. characters, not by
  126. <blank>
  127. characters. Any unquoted unescaped
  128. <blank>
  129. characters at the beginning of each line shall be ignored. The resulting
  130. argument shall be inserted in
  131. .IR arguments
  132. in place of each occurrence of
  133. .IR replstr .
  134. At least five arguments in
  135. .IR arguments
  136. can each contain one or more instances of
  137. .IR replstr .
  138. Each of these constructed arguments cannot grow larger than an
  139. implementation-defined limit greater than or equal to 255 bytes. Option
  140. .BR \-x
  141. shall be forced on.
  142. .IP "\fB\-L\ \fInumber\fR" 10
  143. The
  144. .IR utility
  145. shall be executed for each non-empty
  146. .IR number
  147. lines of arguments from standard input. The last invocation of
  148. .IR utility
  149. shall be with fewer lines of arguments if fewer than
  150. .IR number
  151. remain. A line is considered to end with the first
  152. <newline>
  153. unless the last character of the line is an unescaped
  154. <blank>;
  155. a trailing unescaped
  156. <blank>
  157. signals continuation to the next non-empty line, inclusive.
  158. .IP "\fB\-n\ \fInumber\fR" 10
  159. Invoke
  160. .IR utility
  161. using as many standard input arguments as possible, up to
  162. .IR number
  163. (a positive decimal integer) arguments maximum. Fewer arguments shall
  164. be used if:
  165. .RS 10
  166. .IP " *" 4
  167. The command line length accumulated exceeds the size specified by the
  168. .BR \-s
  169. option (or
  170. {LINE_MAX}
  171. if there is no
  172. .BR \-s
  173. option).
  174. .IP " *" 4
  175. The last iteration has fewer than
  176. .IR number ,
  177. but not zero, operands remaining.
  178. .RE
  179. .IP "\fB\-p\fP" 10
  180. Prompt mode: the user is asked whether to execute
  181. .IR utility
  182. at each invocation. Trace mode (\c
  183. .BR \-t )
  184. is turned on to write the command instance to be executed, followed by
  185. a prompt to standard error. An affirmative response read from
  186. .BR /dev/tty
  187. shall execute the command; otherwise, that particular invocation of
  188. .IR utility
  189. shall be skipped.
  190. .IP "\fB\-s\ \fIsize\fR" 10
  191. Invoke
  192. .IR utility
  193. using as many standard input arguments as possible yielding a command
  194. line length less than
  195. .IR size
  196. (a positive decimal integer) bytes. Fewer arguments shall be used if:
  197. .RS 10
  198. .IP " *" 4
  199. The total number of arguments exceeds that specified by the
  200. .BR \-n
  201. option.
  202. .IP " *" 4
  203. The total number of lines exceeds that specified by the
  204. .BR \-L
  205. option.
  206. .IP " *" 4
  207. End-of-file is encountered on standard input before
  208. .IR size
  209. bytes are accumulated.
  210. .P
  211. Values of
  212. .IR size
  213. up to at least
  214. {LINE_MAX}
  215. bytes shall be supported, provided that the constraints specified in
  216. the DESCRIPTION are met. It shall not be considered an error if a
  217. value larger than that supported by the implementation or exceeding the
  218. constraints specified in the DESCRIPTION is given;
  219. .IR xargs
  220. shall use the largest value it supports within the constraints.
  221. .RE
  222. .IP "\fB\-t\fP" 10
  223. Enable trace mode. Each generated command line shall be written to
  224. standard error just prior to invocation.
  225. .IP "\fB\-x\fP" 10
  226. Terminate if a constructed command line will not fit in the
  227. implied or specified size (see the
  228. .BR \-s
  229. option above).
  230. .SH OPERANDS
  231. The following operands shall be supported:
  232. .IP "\fIutility\fR" 10
  233. The name of the utility to be invoked, found by search path using the
  234. .IR PATH
  235. environment variable, described in the Base Definitions volume of POSIX.1\(hy2017,
  236. .IR "Chapter 8" ", " "Environment Variables".
  237. If
  238. .IR utility
  239. is omitted, the default shall be the
  240. .IR echo
  241. utility. If the
  242. .IR utility
  243. operand names any of the special built-in utilities in
  244. .IR "Section 2.14" ", " "Special Built-In Utilities",
  245. the results are undefined.
  246. .IP "\fIargument\fR" 10
  247. An initial option or operand for the invocation of
  248. .IR utility .
  249. .SH STDIN
  250. The standard input shall be a text file. The results are unspecified if
  251. an end-of-file condition is detected immediately following an escaped
  252. <newline>.
  253. .SH "INPUT FILES"
  254. The file
  255. .BR /dev/tty
  256. shall be used to read responses required by the
  257. .BR \-p
  258. option.
  259. .SH "ENVIRONMENT VARIABLES"
  260. The following environment variables shall affect the execution of
  261. .IR xargs :
  262. .IP "\fILANG\fP" 10
  263. Provide a default value for the internationalization variables that are
  264. unset or null. (See the Base Definitions volume of POSIX.1\(hy2017,
  265. .IR "Section 8.2" ", " "Internationalization Variables"
  266. for the precedence of internationalization variables used to determine
  267. the values of locale categories.)
  268. .IP "\fILC_ALL\fP" 10
  269. If set to a non-empty string value, override the values of all the
  270. other internationalization variables.
  271. .IP "\fILC_COLLATE\fP" 10
  272. .br
  273. Determine the locale for the behavior of ranges, equivalence classes,
  274. and multi-character collating elements used in the extended regular
  275. expression defined for the
  276. .BR yesexpr
  277. locale keyword in the
  278. .IR LC_MESSAGES
  279. category.
  280. .IP "\fILC_CTYPE\fP" 10
  281. Determine the locale for the interpretation of sequences of bytes of
  282. text data as characters (for example, single-byte as opposed to
  283. multi-byte characters in arguments and input files) and the behavior of
  284. character classes used in the extended regular expression defined for
  285. the
  286. .BR yesexpr
  287. locale keyword in the
  288. .IR LC_MESSAGES
  289. category.
  290. .IP "\fILC_MESSAGES\fP" 10
  291. .br
  292. Determine the locale used to process affirmative responses, and the
  293. locale used to affect the format and contents of diagnostic messages
  294. and prompts written to standard error.
  295. .IP "\fINLSPATH\fP" 10
  296. Determine the location of message catalogs for the processing of
  297. .IR LC_MESSAGES .
  298. .IP "\fIPATH\fP" 10
  299. Determine the location of
  300. .IR utility ,
  301. as described in the Base Definitions volume of POSIX.1\(hy2017,
  302. .IR "Chapter 8" ", " "Environment Variables".
  303. .SH "ASYNCHRONOUS EVENTS"
  304. Default.
  305. .SH STDOUT
  306. Not used.
  307. .SH STDERR
  308. The standard error shall be used for diagnostic messages and the
  309. .BR \-t
  310. and
  311. .BR \-p
  312. options. If the
  313. .BR \-t
  314. option is specified, the
  315. .IR utility
  316. and its constructed argument list shall be written to standard error,
  317. as it will be invoked, prior to invocation. If
  318. .BR \-p
  319. is specified, a prompt of the following format shall be written (in the
  320. POSIX locale):
  321. .sp
  322. .RS 4
  323. .nf
  324. "?..."
  325. .fi
  326. .P
  327. .RE
  328. .P
  329. at the end of the line of the output from
  330. .BR \-t .
  331. .SH "OUTPUT FILES"
  332. None.
  333. .SH "EXTENDED DESCRIPTION"
  334. None.
  335. .SH "EXIT STATUS"
  336. The following exit values shall be returned:
  337. .IP "\0\0\0\00" 8
  338. All invocations of
  339. .IR utility
  340. returned exit status zero.
  341. .IP "1\(hy125" 8
  342. A command line meeting the specified requirements could not be
  343. assembled, one or more of the invocations of
  344. .IR utility
  345. returned a non-zero exit status, or some other error occurred.
  346. .IP "\0\0126" 8
  347. The utility specified by
  348. .IR utility
  349. was found but could not be invoked.
  350. .IP "\0\0127" 8
  351. The utility specified by
  352. .IR utility
  353. could not be found.
  354. .SH "CONSEQUENCES OF ERRORS"
  355. If a command line meeting the specified requirements cannot be
  356. assembled, the utility cannot be invoked, an invocation of the utility
  357. is terminated by a signal, or an invocation of the utility exits with
  358. exit status 255, the
  359. .IR xargs
  360. utility shall write a diagnostic message and exit without processing
  361. any remaining input.
  362. .LP
  363. .IR "The following sections are informative."
  364. .SH "APPLICATION USAGE"
  365. The 255 exit status allows a utility being used by
  366. .IR xargs
  367. to tell
  368. .IR xargs
  369. to terminate if it knows no further invocations using the current data
  370. stream will succeed. Thus,
  371. .IR utility
  372. should explicitly
  373. .IR exit
  374. with an appropriate value to avoid accidentally returning with 255.
  375. .P
  376. Note that since input is parsed as lines,
  377. <blank>
  378. characters separate arguments, and
  379. <backslash>,
  380. <apostrophe>,
  381. and double-quote characters are used for quoting, if
  382. .IR xargs
  383. is used to bundle the output of commands like
  384. .IR find
  385. .IR dir
  386. .BR \-print
  387. or
  388. .IR ls
  389. into commands to be executed, unexpected results are likely if any
  390. filenames contain
  391. <blank>,
  392. <newline>,
  393. or quoting characters. This can be solved by using find to call a script
  394. that converts each file found into a quoted string that is then piped to
  395. .IR xargs ,
  396. but in most cases it is preferable just to have
  397. .IR find
  398. do the argument aggregation itself by using
  399. .BR \-exec
  400. with a
  401. .BR '+'
  402. terminator instead of
  403. .BR ';' .
  404. Note that the quoting rules used by
  405. .IR xargs
  406. are not the same as in the shell. They were not made consistent here
  407. because existing applications depend on the current rules. An easy (but
  408. inefficient) method that can be used to transform input consisting of
  409. one argument per line into a quoted form that
  410. .IR xargs
  411. interprets correctly is to precede each non-\c
  412. <newline>
  413. character with a
  414. <backslash>.
  415. More efficient alternatives are shown in Example 2 and Example 5 below.
  416. .P
  417. On implementations with a large value for
  418. {ARG_MAX},
  419. .IR xargs
  420. may produce command lines longer than
  421. {LINE_MAX}.
  422. For invocation of utilities, this is not a problem. If
  423. .IR xargs
  424. is being used to create a text file, users should explicitly set the
  425. maximum command line length with the
  426. .BR \-s
  427. option.
  428. .P
  429. The
  430. .IR command ,
  431. .IR env ,
  432. .IR nice ,
  433. .IR nohup ,
  434. .IR time ,
  435. and
  436. .IR xargs
  437. utilities have been specified to use exit code 127 if an error occurs
  438. so that applications can distinguish ``failure to find a utility'' from
  439. ``invoked utility exited with an error indication''. The value 127 was
  440. chosen because it is not commonly used for other meanings; most
  441. utilities use small values for ``normal error conditions'' and the
  442. values above 128 can be confused with termination due to receipt of a
  443. signal. The value 126 was chosen in a similar manner to indicate that
  444. the utility could be found, but not invoked. Some scripts produce
  445. meaningful error messages differentiating the 126 and 127 cases. The
  446. distinction between exit codes 126 and 127 is based on KornShell
  447. practice that uses 127 when all attempts to
  448. .IR exec
  449. the utility fail with
  450. .BR [ENOENT] ,
  451. and uses 126 when any attempt to
  452. .IR exec
  453. the utility fails for any other reason.
  454. .SH EXAMPLES
  455. .IP " 1." 4
  456. The following command combines the output of the parenthesized
  457. commands (minus the
  458. <apostrophe>
  459. characters) onto one line, which is then appended to the file log. It
  460. assumes that the expansion of
  461. .BR \(dq$0 $*\(dq
  462. does not include any
  463. <apostrophe>
  464. or
  465. <newline>
  466. characters.
  467. .RS 4
  468. .sp
  469. .RS 4
  470. .nf
  471. (logname; date; printf "\(aq%s\(aq\en$0 $*") | xargs -E "" >>log
  472. .fi
  473. .P
  474. .RE
  475. .RE
  476. .IP " 2." 4
  477. The following command invokes
  478. .IR diff
  479. with successive pairs of arguments originally typed as command line
  480. arguments. It assumes there are no embedded
  481. <newline>
  482. characters in the elements of the original argument list.
  483. .RS 4
  484. .sp
  485. .RS 4
  486. .nf
  487. printf "%s\en$@" | sed \(aqs/[\(ha[:alnum:]]/\e\e&/g\(aq |
  488. xargs -E "" -n 2 -x diff
  489. .fi
  490. .P
  491. .RE
  492. .RE
  493. .IP " 3." 4
  494. In the following commands, the user is asked which files in the current
  495. directory (excluding dotfiles) are to be archived. The files are
  496. archived into
  497. .BR arch ;
  498. .IR a ,
  499. one at a time or
  500. .IR b ,
  501. many at a time. The commands assume that no filenames contain
  502. <blank>,
  503. <newline>,
  504. <backslash>,
  505. <apostrophe>,
  506. or double-quote characters.
  507. .RS 4
  508. .sp
  509. .RS 4
  510. .nf
  511. a. ls | xargs -E "" -p -L 1 ar -r arch
  512. .P
  513. b. ls | xargs -E "" -p -L 1 | xargs -E "" ar -r arch
  514. .fi
  515. .P
  516. .RE
  517. .RE
  518. .IP " 4." 4
  519. The following command invokes
  520. .IR command1
  521. one or more times with multiple arguments, stopping if an invocation of
  522. .IR command1
  523. has a non-zero exit status.
  524. .RS 4
  525. .sp
  526. .RS 4
  527. .nf
  528. xargs -E "" sh -c \(aqcommand1 "$@" || exit 255\(aq sh < xargs_input
  529. .fi
  530. .P
  531. .RE
  532. .RE
  533. .IP " 5." 4
  534. On XSI-conformant systems, the following command moves all files
  535. from directory
  536. .BR $1
  537. to directory
  538. .BR $2 ,
  539. and echoes each move command just before doing it. It assumes no
  540. filenames contain
  541. <newline>
  542. characters and that neither
  543. .BR $1
  544. nor
  545. .BR $2
  546. contains the sequence
  547. .BR \(dq{}\(dq .
  548. .RS 4
  549. .sp
  550. .RS 4
  551. .nf
  552. ls -A "$1" | sed -e \(aqs/"/"\e\e""/g\(aq -e \(aqs/.*/"&"/\(aq |
  553. xargs -E "" -I {} -t mv "$1"/{} "$2"/{}
  554. .fi
  555. .P
  556. .RE
  557. .RE
  558. .SH RATIONALE
  559. The
  560. .IR xargs
  561. utility was usually found only in System V-based systems; BSD systems
  562. included an
  563. .IR apply
  564. utility that provided functionality similar to
  565. .IR xargs
  566. .BR \-n
  567. .IR number .
  568. The SVID lists
  569. .IR xargs
  570. as a software development extension. This volume of POSIX.1\(hy2017 does not share the view that
  571. it is used only for development, and therefore it is not optional.
  572. .P
  573. The classic application of the
  574. .IR xargs
  575. utility is in conjunction with the
  576. .IR find
  577. utility to reduce the number of processes launched by a simplistic use
  578. of the
  579. .IR find
  580. .BR \-exec
  581. combination. The
  582. .IR xargs
  583. utility is also used to enforce an upper limit on memory required to
  584. launch a process. With this basis in mind, this volume of POSIX.1\(hy2017 selected only the
  585. minimal features required.
  586. .P
  587. Although the 255 exit status is mostly an accident of historical
  588. implementations, it allows a utility being used by
  589. .IR xargs
  590. to tell
  591. .IR xargs
  592. to terminate if it knows no further invocations using the current data
  593. stream shall succeed. Any non-zero exit status from a utility falls
  594. into the 1\(hy125 range when
  595. .IR xargs
  596. exits. There is no statement of how the various non-zero utility exit
  597. status codes are accumulated by
  598. .IR xargs .
  599. The value could be the addition of all codes, their highest value, the
  600. last one received, or a single value such as 1. Since no algorithm is
  601. arguably better than the others, and since many of the standard
  602. utilities say little more (portably) than ``pass/fail'', no new
  603. algorithm was invented.
  604. .P
  605. Several other
  606. .IR xargs
  607. options were removed because simple alternatives already exist within
  608. \&this volume of POSIX.1\(hy2017. For example, the
  609. .BR \-i
  610. .IR replstr
  611. option can be just as efficiently performed using a shell
  612. .BR for
  613. loop. Since
  614. .IR xargs
  615. calls an
  616. .IR exec
  617. function with each input line, the
  618. .BR \-i
  619. option does not usually exploit the grouping capabilities of
  620. .IR xargs .
  621. .P
  622. The requirement that
  623. .IR xargs
  624. never produces command lines such that invocation of
  625. .IR utility
  626. is within 2\|048 bytes of hitting the POSIX
  627. .IR exec
  628. {ARG_MAX}
  629. limitations is intended to guarantee that the invoked utility has room
  630. to modify its environment variables and command line arguments and
  631. still be able to invoke another utility. Note that the minimum
  632. {ARG_MAX}
  633. allowed by the System Interfaces volume of POSIX.1\(hy2017 is 4\|096 bytes and the minimum
  634. value allowed by this volume of POSIX.1\(hy2017 is 2\|048 bytes; therefore,
  635. the 2\|048 bytes difference seems reasonable. Note, however, that
  636. .IR xargs
  637. may never be able to invoke a utility if the environment passed in to
  638. .IR xargs
  639. comes close to using
  640. {ARG_MAX}
  641. bytes.
  642. .P
  643. The version of
  644. .IR xargs
  645. required by this volume of POSIX.1\(hy2017 is required to wait for the completion of the invoked
  646. command before invoking another command. This was done because
  647. historical scripts using
  648. .IR xargs
  649. assumed sequential execution. Implementations wanting to provide
  650. parallel operation of the invoked utilities are encouraged to add an
  651. option enabling parallel invocation, but should still wait for
  652. termination of all of the children before
  653. .IR xargs
  654. terminates normally.
  655. .P
  656. The
  657. .BR \-e
  658. option was omitted from the ISO\ POSIX\(hy2:\|1993 standard in the belief that the
  659. .IR eofstr
  660. option-argument was recognized only when it was on a line by itself and
  661. before quote and escape processing were performed, and that the logical
  662. end-of-file processing was only enabled if a
  663. .BR \-e
  664. option was specified. In that case, a simple
  665. .IR sed
  666. script could be used to duplicate the
  667. .BR \-e
  668. functionality. Further investigation revealed that:
  669. .IP " *" 4
  670. The logical end-of-file string was checked for after quote and escape
  671. processing, making a
  672. .IR sed
  673. script that provided equivalent functionality much more difficult to
  674. write.
  675. .IP " *" 4
  676. The default was to perform logical end-of-file processing with an
  677. <underscore>
  678. as the logical end-of-file string.
  679. .P
  680. To correct this misunderstanding, the
  681. .BR \-E
  682. .IR eofstr
  683. option was adopted from the X/Open Portability Guide. Users should
  684. note that the description of the
  685. .BR \-E
  686. option matches historical documentation of the
  687. .BR \-e
  688. option (which was not adopted because it did not support the Utility
  689. Syntax Guidelines), by
  690. saying that if
  691. .IR eofstr
  692. is the null string, logical end-of-file processing is disabled.
  693. Historical implementations of
  694. .IR xargs
  695. actually did not disable logical end-of-file processing; they treated a
  696. null argument found in the input as a logical end-of-file string. (A
  697. null
  698. .IR string
  699. argument could be generated using single or double-quotes (\c
  700. .BR '\^'
  701. or
  702. .BR \(dq\^\(dq ).
  703. Since this behavior was not documented historically, it is considered
  704. to be a bug.
  705. .P
  706. The
  707. .BR \-I ,
  708. .BR \-L ,
  709. and
  710. .BR \-n
  711. options are mutually-exclusive. Some implementations use the last one
  712. specified if more than one is given on a command line; other
  713. implementations treat combinations of the options in different ways.
  714. .SH "FUTURE DIRECTIONS"
  715. None.
  716. .SH "SEE ALSO"
  717. .IR "Chapter 2" ", " "Shell Command Language",
  718. .IR "\fIdiff\fR\^",
  719. .IR "\fIecho\fR\^",
  720. .IR "\fIfind\fR\^"
  721. .P
  722. The Base Definitions volume of POSIX.1\(hy2017,
  723. .IR "Chapter 8" ", " "Environment Variables",
  724. .IR "Section 12.2" ", " "Utility Syntax Guidelines"
  725. .P
  726. The System Interfaces volume of POSIX.1\(hy2017,
  727. .IR "\fIexec\fR\^"
  728. .\"
  729. .SH COPYRIGHT
  730. Portions of this text are reprinted and reproduced in electronic form
  731. from IEEE Std 1003.1-2017, Standard for Information Technology
  732. -- Portable Operating System Interface (POSIX), The Open Group Base
  733. Specifications Issue 7, 2018 Edition,
  734. Copyright (C) 2018 by the Institute of
  735. Electrical and Electronics Engineers, Inc and The Open Group.
  736. In the event of any discrepancy between this version and the original IEEE and
  737. The Open Group Standard, the original IEEE and The Open Group Standard
  738. is the referee document. The original Standard can be obtained online at
  739. http://www.opengroup.org/unix/online.html .
  740. .PP
  741. Any typographical or formatting errors that appear
  742. in this page are most likely
  743. to have been introduced during the conversion of the source files to
  744. man page format. To report such errors, see
  745. https://www.kernel.org/doc/man-pages/reporting_bugs.html .