7
votes

Pourquoi la pipeline Du ou Echo ne fonctionne pas?

J'essaie d'utiliser la commande pour chaque répertoire de l'actuel. Donc, j'essaie d'utiliser le code comme celui-ci:

ls | echo


0 commentaires

3 Réponses :


16
votes

L'utilisation d'un tuyau envoie la sortie ( stdout ) de la première commande, à stdin (entrée) du processus enfant (2e commande). Les commandes que vous avez mentionnées ne prennent aucune entrée sur stdin . Cela fonctionnerait, par exemple, avec chat (et par travail, je veux dire travailler comme chat sans argument, et simplement passer le long de l'entrée que vous le donnez): < Pré> xxx

pour vos applications, c'est là que xargs est entré. Il prend une entrée de canalisation et le donne comme des arguments à la commande spécifiée. Donc, vous pouvez le faire fonctionner comme: xxx

méfiez-vous par défaut xargs brisera son entrée sur des espaces, donc si vos noms de fichiers contiennent des espaces ceci ne fonctionnera pas comme vous le souhaitez. Donc, dans ce cas particulier, cela serait préférable: xxx


1 commentaires

Le * est un globe générique (ou une carte générique que vous le savez peut-être). Le shell remplacera-le avec tous les noms de fichier (ou répertoire, etc.) dans le répertoire actuel qui correspond à celle-ci. Y pourrait aussi, par exemple, dire *. JPG pour correspondre à n'importe quel fichier se terminant par .jpg



2
votes
$ ls -d */ | xargs du -sb

0 commentaires

5
votes

Utiliser la substitution de commande, comme ceci: xxx


0 commentaires