-
Las tuberías no almacenan datos en el disco. /bin/echo foo | grep bar no crea ningún archivo. prueba
strace -f sh -c '/bin/echo foo | grep bar'
para ver todas las llamadas al sistema realizadas por un shell cuando se ejecuta una canalización.echo
es un shell integrado, así que sugerí/bin/echo
para hacer que el shell ejecute un ejecutable. -
/tmp
no tiene que estar en el disco. Se puede montar en tmpfs (es decir, respaldado por memoria virtual). Tenga en cuenta que un reinicio vaciará/tmp
en ese caso, usa/var/tmp
para cualquier cosa que quieras dejar.
Si lo que está haciendo es poner datos en un archivo, entonces no está usando una canalización. Si el archivo es un fifo, no un archivo normal, entonces es solo una cita con nombre y no contiene datos. Usa ls -l para averiguarlo.
Y tenga en cuenta que si espera evitar que los usuarios vean lo que está pasando por las canalizaciones en los procesos que poseen, es bastante SOL, porque strace
puede inspeccionar todo lo que hace un proceso que interactúa con cualquier cosa fuera del proceso, excepto la lectura/escritura de la memoria compartida asignada. ltrace
es aún más invasivo. Si su programa se ejecutará en sistemas donde el usuario local tiene root, no puede detenerlos en absoluto. En Unix, root puede hacer cualquier cosa y tiene poderosas herramientas para ese propósito.