GNU/Linux >> Znalost Linux >  >> Linux

Jak funguje příkaz 'ls' v Linuxu/Unixu?

Abychom doplnili odpověď, v knize The C Programming Language (K&RC) uvedli malý příklad, jak postupovat při implementaci ls. Velmi dobře vysvětlili používané datové struktury a funkce.


Abyste pochopili, co ls dělá, můžete se podívat na zdroj OpenSolaris:https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/ls/ls.c.

Pokud je to ohromující, na Solarisu začnete pomocí truss, abyste se podívali na systémová volání, která ls dělá, abyste pochopili, co dělá. Pomocí nosníku zkuste:

truss -afl -o ls.out /bin/ls

pak se podívejte na výstup v ls.out

Věřím, že trace je ekvivalentem truss v Linuxu.


ls se nerozvětvuje. Shell se rozvětvuje a spouští, aby spustil jakýkoli příkaz, který není vestavěný, a jeden z příkazů, který může spustit, je ls.

ls používá opendir() a readdir() k procházení všemi soubory v adresáři. Pokud potřebuje více informací o jednom z nich, zavolá stat().


Linux
  1. Jak používat Linuxový příkaz grep

  2. Linux – Jak lze zkontrolovat informace o struktuře adresářů souboru Unix/linux?

  3. Jak funguje příkaz ps?

  1. Jak používat příkaz historie v Linuxu

  2. Jak Sticky Bit funguje?

  3. Jak funguje příkaz Exit na Unixovém terminálu?

  1. Jak používat příkaz historie Linuxu

  2. Jak funguje Tee Command?

  3. Jak fungují volby '-s', '-t' a '-c' příkazu tr v Unixu?