Portál AbcLinuxu, 16. července 2025 05:31
Mohl by mi někdo napsat jednoduchý okomentářovaný příkládek využívající této konstrukce, tj. <(list)
a >(list)
?
Použítí FIFO (pojmenované roury) jsem pochopil, ale tohle ne.
Už mám v hlavě jasněji.
# Např. tar cf >(bzip2 -c > soubor.tar.bz2) adresar # v zákulisí je něco jako # tar cf /dev/fd/neco adresar # bzip2 -c < /dev/fd/neco > soubor.tar.bz2 # # můžu napsat jako mkfifo FIFO tar cf - adresar > FIFO bzip2 -c < FIFO > soubor.tar.bz2 # v jiné konzoli # nebo taky můžu zapsat tar cf - adresar | bzip2 -c > soubor.tar.bz2 # A rozbalení souboru tar xf - < <(bzcat soubor.tar.bz2)
> # Např.
> tar cf >(bzip2 -c > soubor.tar.bz2) adresar
nedalo by se to napsat nejak takle?
tar cf adresar | bzip2 -c > soubor.tar.bz2
tar cf - adresar | bzip2 -c > soubor.tar.bz2
Symbol "-" by tam měl být. Způsobí přesměrování dat na standardní výstup.
tar xf - < <(bzcat soubor.tar.bz2)namísto
tar xf <(bzcat soubor.tar.bz2)Protože: <(bzcat soubor.tar.bz2) udělá dvě věci: spustí bzcat soubor.tar.bz2 a jeho výstup (stdout) přesměruje do /dev/fd/něco. Toto /dev/fd/něco pak dostane tar jako argument (o čemž se lze přesvědčit, když tar xf nahradíš třeba echo -- vypíše to /dev/fd/něco).
prikaz >(prikazy)
>(prikazy)
bude nahrazeno /dev/fd/neco
. prikaz
zapisuje data do souboru /dev/fd/neco, neboli na vstup (stdin) části prikazy
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.