\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{lun. oct. 17 11:25:46 CEST 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={xargs},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Construire et exécuter des commandes depuis l'entrée standard},
CreationDate={D:20161017112546},
ModDate={D:20161017112546},
Keywords={findutils}
}}
\begin{document}
 
\begin{center}
{\Huge xargs }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Construire et exécuter des commandes depuis l'entrée standard}
 
\vspace{10mm}
 
\hspace{1mm}  xargs lit des éléments depuis l'entrée standard, délimité par des espaces blancs, et exécute la commande spécifié une ou plusieurs fois. La ligne de commande pour la commande est construite jusqu'à ce quelle atteigne une limite définie par le système (sauf si -n et -L sont utilisés). La commande spécifiée sera invoquée autant de fois que nécessaire pour utiliser la liste des éléments d'entrée.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -0, --null]{Les éléments d'entrée sont terminés par un caractère null au lieu d'un espace blanc, et les ' et \textbackslash{} ne sont pas spéciaux}
\item[\hspace{1mm} -a file, --arg-file=file]{Lis les éléments depuis le fichier au lieu de l'entrée standard.}
\item[\hspace{1mm} eof-str]{Définis la chaîne EOF.}
\item[\hspace{1mm} -e\texttt{[}eof-str\texttt{]}, --eof\texttt{[}=eof-str\texttt{]}]{Idem à -E. -E est conforme POSIX alors que cette option ne l'est pas. Si eof-str est omis, il n'y a pas de chaîne EOF.}
\item[\hspace{1mm} -I replace-str]{Remplace les occurences de replace-str dans les arguments initials avec les noms lus depuis l'entrée standard.}
\item[\hspace{1mm} -L max-lines]{Utilise au moins max-lines lignes d'entrées non-blancs par ligne de commande.}
\item[\hspace{1mm} max-args, --max-args=max-args]{Utilise au moins max-args arguments par ligne de commande.}
\item[\hspace{1mm} -P max-procs, --max-procs=max-procs]{Lance jusqu'à max-procs processus à la fois. Défaut: 1. À 0, xargs lance autant de processus que possible à la fois.}
\item[\hspace{1mm} -p, --interactive]{Demande à l'utilisateur s'il lance chaque ligne de commande et lit une ligne depuis le terminal. Implique -t}
\item[\hspace{1mm} --process-slot-var=name]{Définis une variable d'environnement.}
\item[\hspace{1mm} -r, --no-run-if-empty]{Si l'entrée standard ne contient rien de non blanc, ne lance pas la commande.}
\item[\hspace{1mm} -s max-chars, --max-chars=max-chars]{Utilise au moins max-chars caractères par ligne de commande, incluant la commande est les arguments initiaux et la caractère null terminant la chaîne d'arguments.}
\item[\hspace{1mm} --show-limits]{Affiche les limites de la longueur de la ligne de commande imposée par l'OS.}
\item[\hspace{1mm} -t, --verbose]{Affiche la ligne de commande sur l'erreur standard avant de l'exécuter}
\item[\hspace{1mm} -x, --exit]{Quitte si la taille (-s) est dépassée}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Trouve les fichiers nommés core dans /tmp et les supprime \\
\hspace{1mm} \textbf{find /tmp -name core -type f -print | xargs /bin/rm -f} \\
\hspace{1mm} Trouve les fichiers nommés core dans /tmp et les supprime, en gérant les espaces dans les noms de fichier \\
\hspace{1mm} \textbf{find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f} \\
\hspace{1mm} Trouve les fichiers nommés core dans /tmp et les supprime, mais plus efficacement que dans l'exemple précédent (on évite d'utiliser fork(2) et exec(2) pour lancer rm) \\
\hspace{1mm} \textbf{find /tmp -depth -name core -type f -delete} \\
\hspace{1mm} Génère un listing compacte de tous les utilisateurs dans le système \\
\hspace{1mm} \textbf{cut -d: -f1 < /etc/passwd | sort | xargs echo} \\
\hspace{1mm} Lance le nombre de copies minimum d'Emacs nécessaire, une après l'autre, pour éditer les fichiers listés dans l'entrées xargs: \\
\hspace{1mm} \textbf{xargs sh -c 'emacs "\$@" < /dev/tty' emacs} \\
 
\vspace{1cm}{\huge Codes de sortie }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} 0]{succès}
\item[\hspace{1mm} 123]{une des commandes invoquée s'est terminé par un code entre 1 et 125}
\item[\hspace{1mm} 124]{La commande s'est terminée par un code 255}
\item[\hspace{1mm} 125]{La commande a été tuée par un signal}
\item[\hspace{1mm} 126]{La commande ne peut pas être lancée}
\item[\hspace{1mm} 127]{Commande non trouvée}
\item[\hspace{1mm} 1]{Une autre erreur s'est produite}
\end{description}
\end{flushleft}
\end{document}
