GNU/Linux >> Tutoriales Linux >  >> Linux

lsof - restringir la salida solo a archivos físicos - ¿cómo?

Solución 1:

Acabo de mirar algunas páginas man, parece que usas el comando:

sudo lsof /

Esto mostrará una lista de todos los archivos abiertos en el directorio /, que es todo en un sistema de archivos de Linux. Acabo de probar y solo muestra REG y DIR.

Más ejemplos:

lsof -a -d 0-999 -c <command name> /
lsof -a -d 0-999 -p <pid> /

0-999 lo limita a archivos con un número de descriptor de archivo.

Solución 2:

Puede haber un interruptor, pero si no te importa filtrarlo a través de grep, puedes hacer sudo lsof | egrep 'REG|DIR' , asumiendo que por "archivos físicos" se refiere a archivos y directorios normales.

Consulte la sección SALIDA ::TIPO de la página man man lsof para todos los tipos que puedan estar en esa columna.

Solución 3:

Esto es lo que hice y funcionó perfectamente para mí:

lsof -F n -p 12501 | grep ^n/ | cut -c2- | sort -u

El -F n opción a lsof hará que solo imprima los nombres de los archivos abiertos. Cada línea de salida que tenga el nombre de un archivo abierto comenzará con el carácter único n seguido inmediatamente por el nombre . Normal files siempre será el nombre absoluto y totalmente calificado del archivo. El grep ^n/ seleccionará solo aquellas líneas con un nombre que comience con un / (es decir, un nombre de archivo absoluto y totalmente calificado); eliminando así cosas como puertos abiertos, enchufes, tuberías (como FIFO), etc. El cut -c2- eliminará el primer carácter, el n , dejando solo el nombre del archivo. Luego, finalmente, el sort -u eliminará cualquier entrada duplicada.

Una advertencia, esto incluirá archivos que no son normales siempre que su nombre comience con un / . Por ejemplo, se incluirían todos los archivos que comiencen con lo siguiente:

  • /dev
  • /proc
  • /sistema

Y puede haber otros dependiendo de su sistema operativo.


Linux
  1. ¿Cómo ingresar a un directorio cuyo nombre es solo un signo negativo?

  2. ¿Cómo imprimir el nombre de los archivos que faltan en una carpeta?

  3. ¿Cómo diferencia un directorio solo para archivos de un tipo específico?

  4. Comando de Linux:¿Cómo 'buscar' solo archivos de texto?

  5. ¿Cómo obtener solo el nombre del archivo con Linux 'buscar'?

Cómo encontrar archivos en Linux

Bash scripting:cómo escribir datos en archivos de texto

¿Cómo obtener solo archivos creados después de una fecha con Ls?

¿Cómo hacer directorios de solo salida de árbol?

Cómo:usar lsof:10 comandos esenciales para solucionar problemas de su servidor Linux

¿Cómo diferenciar solo la primera línea de dos archivos?