-
roury neukládají data na disk. /bin/echo foo | grep bar nevytváří žádné soubory. zkuste
strace -f sh -c '/bin/echo foo | grep bar'
zobrazit všechna systémová volání provedená shellem při spuštění potrubí.echo
je vestavěný shell, takže jsem navrhl/bin/echo
aby shell běžel jako spustitelný soubor. -
/tmp
nemusí být na disku. Může být připojen na tmpfs (tj. zálohovaný virtuální pamětí). Všimněte si, že restartování vyprázdní/tmp
v tom případě použijte/var/tmp
na cokoli, co tu chcete nechat.
Pokud to, co děláte, je vkládání dat do souboru, pak to nepoužívá roura. Pokud je soubor fifo, nikoli běžný soubor, pak je to pouze pojmenované setkání a neobsahuje data. Chcete-li to zjistit, použijte ls -l.
A povšimněte si, že pokud doufáte, že uživatelům zabráníte v tom, aby viděli, co prochází potrubím v procesech, které vlastní, jste do značné míry SOL, protože strace
může kontrolovat vše, co proces dělá, co interaguje s čímkoli mimo proces, kromě čtení/zápisu mmapované sdílené paměti. ltrace
je ještě invazivnější. Pokud váš program poběží na systémech, kde má místní uživatel root, nemůžete je vůbec zastavit. Na Unixu může root dělat cokoliv a má pro tento účel výkonné nástroje.