La shell di Linux non stampa informazioni aggiornate quando si tratta di ls. Ad esempio, uso i miei altri processi (IDE ecc.) Per creare alcune directory. Tuttavia, quando eseguo un comando ls, non vedo queste directory. Normalmente ci vogliono alcuni secondi a volte minuti prima che quella directory appaia nell'output di ls.
Che cosa sta succedendo? Posso forzare un aggiornamento? Idealmente, quando dico "ls", voglio vedere lo stato quando ho digitato il comando non un risultato memorizzato nella cache.
Il file system non è una condivisione NFS. L'unica altra cosa che mi viene in mente è che la directory è stata creata da un programma durante l'esecuzione da Eclipse (e il display è stato indirizzato alla mia finestra di Windows locale)
Non so come questo possa influenzare le cose però?
Risposta accettata:
ls
non ha nulla a che fare con bash
o qualsiasi conchiglia. Elenca il contenuto di una directory, esclusi i file nascosti (quelli il cui nome inizia con un .
) richiedendo tale elenco al kernel
Se ls
non li mostra, quindi non ci sono (per quanto riguarda il sistema operativo) o stai elencando la directory sbagliata.
Ciò può accadere, ad esempio, quando la directory corrente è stata rinominata sotto i tuoi piedi. Come:
$ 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