GNU/Linux >> Znalost Linux >  >> Linux

Příkaz `ls` nevypisuje nejnovější obsah adresáře?

Linuxový shell netiskne aktuální informace, pokud jde o ls. Například používám své další procesy (IDE atd.) k vytvoření některých adresářů. Když však spustím příkaz ls, tyto adresáře nevidím. Obvykle trvá několik sekund, někdy i minut, než se tento adresář objeví ve výstupu ls.

Co se děje? Mohu vynutit obnovení? V ideálním případě, když řeknu „ls“, chci vidět stav, kdy jsem zadal příkaz, ne nějaký výsledek z mezipaměti.

Systém souborů není sdílená složka NFS. Jediná další věc, která mě napadá, je, že adresář byl vytvořen programem při spuštění z Eclipse (a zobrazení bylo směrováno do mého místního okna Windows)

Nevím, jak to může ovlivnit věci?

Přijatá odpověď:

ls nemá nic společného s bash nebo jakákoliv skořápka. Vypisuje obsah adresáře, kromě skrytých souborů (těch, jejichž název začíná . ) vyžádáním tohoto seznamu od jádra

Pokud ls nezobrazuje, pak tam nejsou (pokud jde o operační systém) nebo uvádíte špatný adresář.

To se může stát například tehdy, když byl aktuální adresář přejmenován pod vašimi nohami. Jako:

$ 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

Linux
  1. Příkaz Rm ve skriptu Bash nefunguje s proměnnou?

  2. lsattr:příkaz nenalezen

  3. id:příkaz nenalezen

  1. w:příkaz nenalezen

  2. df:příkaz nenalezen

  3. du:příkaz nenalezen

  1. rm:příkaz nenalezen

  2. mv:příkaz nenalezen

  3. ln:příkaz nenalezen