Pourquoi echo * | rm -f
ne fonctionne-t-il pas? Selon mes connaissances, echo *
devrait lister tous les fichiers du répertoire et le pipe devrait envoyer cette liste comme argument à la commande rm -f
, qui devrait supprimer les fichiers. Qu'est-ce que je rate?
Réponses
Trop de publicités?Le pipe envoie des données à stdin. Et non à la liste des arguments. Ce sont deux concepts très différents.
Les arguments sont ce qui est en ligne après la ligne de commande. Stdin est essentiellement comme un fichier qui est déjà ouvert, à partir duquel vous pouvez lire.
Veuillez également noter que faire des choses comme ceci : echo * | xargs rm -f
est une mauvaise idée car cela pourrait causer des problèmes en cas de fichiers avec des espaces dans les noms, ou avec un "-" au début.
Girl who needs help
Points
1