De to pipelines "ls | grep -v 'notes.txt' | xargs rm" og "echo '#include <knowledge.h>' | cat > foo.c" har forskellige formål og anvendelser. Her er en detaljeret forklaring:
ls
og ekskluderer filen notes.txt
.xargs
til at tage den filtrerede liste af filer og passerer dem som argumenter til rm
for at slette dem.Hvorfor er xargs nødvendigt?
xargs
er nødvendigt, fordi det konverterer standard input (output fra grep
) til argumenter for rm
.xargs
ville rm
ikke modtage de nødvendige filnavne som argumenter og dermed ikke kunne slette filerne.#include <knowledge.h>
.cat
til at tage input fra echo
og omdirigerer det til en fil ved navn foo.c
.Formål:
notes.txt
.foo.c
med indholdet #include <knowledge.h>
.Selvom begge pipelines bruger Unix-kommandoer, tjener de forskellige formål og anvender forskellige teknikker til at opnå deres respektive mål.
Har du brug for hjælp til Unix-kommandoer og pipelines? Med Handyhand kan du nemt oprette din opgave gratis og få bud fra dygtige hjælpere på få minutter. Uanset om du står over for komplekse scripts eller blot har brug for vejledning, er hjælp lige ved hånden.