El shell de Linux no imprime información actualizada cuando se trata de ls. Por ejemplo, uso mis otros procesos (IDE, etc.) para crear algunos directorios. Sin embargo, cuando ejecuto un comando ls, no veo estos directorios. Normalmente toma unos segundos, a veces minutos, para que ese directorio aparezca en la salida de ls.
¿Qué está pasando? ¿Puedo forzar una actualización? Idealmente, cuando digo "ls", quiero ver el estado cuando escribí el comando, no algún resultado almacenado en caché.
El sistema de archivos no es un recurso compartido NFS. Lo único que se me ocurre es que el directorio fue creado por un programa cuando se ejecuta desde Eclipse (y la pantalla se enrutó a mi ventana local)
Sin embargo, no sé cómo esto puede afectar las cosas.
Respuesta aceptada:
ls
no tiene nada que ver con bash
o cualquier concha. Enumera el contenido de un directorio, excluyendo los archivos ocultos (aquellos cuyo nombre comienza con .
) ) solicitando esa lista del kernel
Si ls
no los muestra, entonces no están allí (en lo que respecta al sistema operativo) o está enumerando el directorio incorrecto.
Eso puede suceder, por ejemplo, cuando el directorio actual ha cambiado de nombre bajo sus pies. Me gusta:
$ pwd
/tmp/1
$ ls
x
$ mv /tmp/1 /tmp/2
$ pwd
/tmp/1 # (/tmp/1 has been renamed but the shell is not aware of it)
$ mkdir /tmp/1
$ touch /tmp/1/y
$ pwd
/tmp/1
$ ls # (ls is still listing `.` which has not changed, but now is a hardlink to `/tmp/2`, while `/tmp/1` is some new directory)
x
$ pwd -P # (double check what the current directory is)
/tmp/2
$ cd /tmp/1
$ ls
y