GNU/Linux >> Tutoriales Linux >  >> Linux

¿Pseudoarchivos para datos temporales?

A menudo quiero enviar datos de cadenas relativamente cortas (aunque podrían ser varias líneas) a programas de línea de comandos que solo aceptan entradas de archivos (por ejemplo, wdiff) de forma repetida. Claro que puedo crear uno o más archivos temporales, guardar la cadena allí y ejecutar el comando con el nombre del archivo como parámetro. Pero me parece que este procedimiento sería muy ineficiente si los datos se escriben realmente en el disco y también podría dañar el disco más de lo necesario si repito este procedimiento muchas veces, p. si quiero alimentar líneas individuales de archivos de texto largos a wdiff. ¿Hay alguna forma recomendada de eludir esto, por ejemplo, mediante el uso de pseudo archivos como tuberías para almacenar los datos temporalmente sin escribirlos en el disco (o escribirlos solo si excede una longitud crítica)? Tenga en cuenta que wdiff toma dos argumentos y, según tengo entendido, no será posible alimentar los datos haciendo algo como wdiff <"text" .

Respuesta aceptada:

Utilice una canalización con nombre. A modo de ilustración:

mkfifo fifo
echo -e "hello worldnnext linenline 3" > fifo

El -e le dice a echo que interprete correctamente el escape de nueva línea (n ). Esto bloqueará, es decir, su shell se bloqueará hasta que algo lea los datos de la tubería.

Abra otro shell en algún lugar y en el mismo directorio:

cat fifo

Leerás el eco, que liberará el otro caparazón. Aunque la canalización existe como un nodo de archivo en el disco, los datos que pasan a través de ella no lo hacen; todo tiene lugar en la memoria. Puede fondo (& ) el eco.

La tubería tiene un búfer de 64k (en Linux) y, como un socket, bloqueará el escritor cuando esté lleno, por lo que no perderá datos siempre que no elimine prematuramente al escritor.


Linux
  1. ¿Script de Shell para mover archivos más antiguos?

  2. ¿Un entorno similar a una concha para el procesamiento binario?

  3. ¿Ocultar datos en los sistemas de archivos?

  4. Compruebe los archivos de configuración de Linux en busca de errores de sintaxis

  5. Archivos .o frente a archivos .a

Lista de bases de datos NoSQL para 2021

Comando ls en Linux para listar archivos

Cómo instalar y usar Okteta para archivos de datos RAW en Linux

Configuración de Dropbox para un servidor en la nube de Linux

Máximo de archivos abiertos para el proceso de trabajo

Uso de archivos para IPC de memoria compartida