GNU/Linux >> Znalost Linux >  >> Ubuntu

Co vrátí příkaz Ls -al .*?

Zobrazuje skryté názvy souborů ve všech adresářích? Nebo jen aktuální adresář (včetně jakéhokoli adresáře v něm)? Nechápu, proč ls -ld .* vrací různé výsledky (zobrazuje skryté soubory a adresáře POUZE v aktuálním adresáři, nezobrazuje soubory v žádném jiném adresáři uvnitř něj)? Také Co dělá -d udělat sám (ls -d )?

Přijatá odpověď:

ls -al .* zobrazuje obsah všech adresářů v aktuálním adresáři, jejichž názvy začínají . (tj. všechny, které odpovídají shellu glob .* )

V Bash, .* glob se převede na . a .. také. Od . představuje aktuální adresář a .. nadřazený adresář, zobrazí se také obsah obou těchto adresářů, včetně skrytých souborů a adresářů.

.* také zachytí skryté soubory v aktuálním adresáři, ale stejně jsou uvedeny jako obsah .

Jak je vysvětleno v části Co znamená `ls –directory`? -d příznak způsobí, že se místo jejich obsahu zobrazí samotné adresáře.

to je také případ pomlčky, což je shell symbolicky propojený s sh v Ubuntu. Jiné shelly, včetně zsh a mksh, se však chovají intuitivněji a neobsahují . a .. při rozbalení .* . Za zmínku také stojí, že zatímco většina příkazů bude fungovat na .. a . pokud jsou zahrnuty v .* glob (včetně chmod a chown – těmi si můžete pořádně pokazit systém), rm příkaz k tomu užitečně selže.


Ubuntu
  1. Co vrátí malloc(0)?

  2. Co znamená - v tomto linuxovém příkazu?

  3. Co znamená NT_STATUS_BAD_NETWORK_NAME v Sambě?

  1. Co dělá „lc_all=c“?

  2. Co dělá ?

  3. Co znamená přípona .d v Linuxu?

  1. Co znamená velikost adresáře ve výstupu příkazu „ls -l“?

  2. Co dělá Echo $? Dělat??

  3. Co dělá . ~/.bashrc Příkaz Udělat??