Le shell Linux n'affiche pas d'informations à jour en ce qui concerne ls. Par exemple, j'utilise mes autres processus (IDE, etc.) pour créer des répertoires. Cependant, lorsque j'exécute une commande ls, je ne vois pas ces répertoires. Cela prend normalement quelques secondes, parfois quelques minutes, pour que ce répertoire apparaisse dans la sortie ls.
Qu'est-ce qui se passe? Puis-je forcer un rafraichissement ? Idéalement, lorsque je dis "ls", je veux voir l'état lorsque j'ai tapé la commande, pas un résultat en cache.
Le système de fichiers n'est pas un partage NFS. La seule autre chose à laquelle je peux penser est que le répertoire a été créé par un programme lorsqu'il est exécuté à partir d'Eclipse (et l'affichage a été acheminé vers ma boîte Windows locale)
Je ne sais pas comment cela peut affecter les choses ?
Réponse acceptée :
ls
n'a rien à voir avec bash
ou n'importe quel coquillage. Il liste le contenu d'un répertoire, à l'exclusion des fichiers cachés (ceux dont le nom commence par un .
) en demandant cette liste au noyau
Si ls
ne les affiche pas, alors ils ne sont pas là (en ce qui concerne le système d'exploitation) ou vous listez le mauvais répertoire.
Cela peut arriver par exemple lorsque le répertoire courant a été renommé sous vos pieds. Comme :
$ 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