¿Existe algún comando integrado de Linux para mostrar el contenido de un directorio en tiempo real?

¿Existe algún comando integrado de Linux para mostrar el contenido de un directorio en tiempo real?

¿Existe algún comando incorporado de Linux para mostrar el contenido de un directorio en tiempo real? Similar al comando "tail -f file_name" que muestra el contenido de un archivo en tiempo real.

Respuesta1

puedes hacer esto usando watch. No es completamente en tiempo real, pero sí lo suficientemente cercano (hasta una décima de segundo):

watch -n0.1 ls

del manual:

-n, --interval seconds
          Specify update interval.  The command will not allow quicker than 0.1 second interval, in which the smaller values are converted.

Respuesta2

Escribí esto, espero que esto sea lo que necesitabas. No es un built-in Linux command, pero utiliza sólo programas comunes presentes en la mayoría de las cajas UNIX.

Ajuste sleepel tiempo según sea necesario. Usaría un valor de al menos 2 segundos. Úselo cmd="ls"para estructuras no recursivas o cmd="find DIRNAME"para buscar recursivamente. Tenga en cuenta que en el último caso, obtendrá un DIRNAME/prefijo para todos los archivos y directorios.

 echo "" | awk '{while ( 1 ) {cmd="find ."; delete b;c=0; while ( ( cmd | getline result ) > 0 ) {test=1;c++;n=0;for (i in a) {n++;if (a[i]==result) {b[c]=i; test=0; break;}} if (test) {n++;a[n]=result;b[c]=n;print "##NEW## "result }} close (cmd); for (i in a) {test=1;for (j in b) {if (b[j]==i) {test=0;break}} if (test) {print "##DELETED## "a[i]; delete a[i]}} system("sleep 5") } }'

Respuesta3

Esto es tan simple después de que lo sé.

watch -d dir_name

Respuesta4

Puede utilizar inotifytoolsy sus utilidades de línea de comandos.

Puede usarlo inotifypara monitorear el directorio y devolverá eventos para el directorio en sí y para los archivos dentro del directorio.

Otra herramienta que se puede utilizar esinotifywatch:

sudo inotifywatch -v -r /foo

Puede agregar -rfor para observar todos los subdirectorios de forma recursiva. Sin embargo esta soluciónno detecta cambios en archivos recién creados.

Entonces otra solución es usar inotifywait:

inotifywait -m --format "%f" /foo

Aquí hay otro ejemplo de cómo mostrar el contenido de todos test*los archivos recién creados en /tmp:

inotifywait -m --format "%f" /tmp | grep --line-buffered ^test | xargs -L1 -I% sudo cat /tmp/% 2> /dev/null

información relacionada