Portál AbcLinuxu, 10. května 2025 05:06
Jak se v linuxu vypisuji vsechny adresare? Zkousel jsem si postupne: 1. vytvorit soubor: touch soubor 2. vytvorit skryty soubor: touch .skryty 3. vytvorit adresar mkdir adresar 4. vypsat soubory ls vypise se: adresar soubor 5. vypsat vsechny soubory ls -a vypise se: . .. adresar soubor 6. vypsat jen adresare ls -d vypise se: . A tady jsem skoncil a nechapu proc se nevypsalo ". .. adresar" ??? Taky moc nechapu proc se vypisuje . a .. kdyz jsou to jen pomucky jak oznacit aktualni adresar a ten nad nim. Aktualni adresar a jeho parent prece nejsou v aktualnim adresari. Linux je dost nelogicky :-/
ls
command. mozes pouzit switch -A
- almost all - ten ti ich uz nevypise (./..
).
myslim, ze ls nema sam o sebe taky switch, ze by vypisal len adresare tak ako chces ty. da sa s tym vsak pohrat a poskladat kommandy. napriklad:
ls -la | grep ^dalebo cez
find
:
find ./* -type d -pruneak chces aj dot directories (co su akoze "skryte"), ale nie cwd/parent dir (
./..
):
find ./* ./.* -type d -prune \! -name . \! -name ..ja osobne dost casto pouzivam ten "dirty" ls. nie je to asi celkom koser, ale posluzi.
Taky používám toto.ls -la | grep ^d
ls -ld */ .*/(bez
.*/
) aby nelistoval dot directories.
ale ten ls+grep sa podla mna da rychlejsie napisat na klavesnici, je sikovnejsi.
tento cez ls mozes skor pouzit pri skripte, aby si sa zbytocne neforkoval cez grep.
Prikaz 'ls -d */' funguje tak jak jsem si predstavoval, akorat pridava za adresare lomitko. Prepinac -d jsem uz pochopil, ale uz nechapu proc nefunguje 'ls -d *'. Proc se tam musi psat to lomitko. Grep jde pouzit jen na vypis, kde se vypisou prava a typ souboru/adresare, ale na jednoduchy vypis uz ne. Ach jo, je to tak nejednotne a nelogicke, ze se to budu muset naucit nazpamet, ale prikazova radka linuxu me urcitym zpusobem pritahuje :)
Prepinac -d jsem uz pochopil, ale uz nechapu proc nefunguje 'ls -d *'.Nepochopil. Volba
-d
není filtr, ale potlačuje vlastnost ls, že vypisuje obsah adresářů předaných na příkazové řádce. Takže ls -d *
funguje zcela správně, ale je jednoduší použít prosté ls -l
. Doporučuju si před to ls
napsat ještě echo
, aby se třeba nestalo, že máš pocit, že ls
vidí tu hvězdičku. Nevidí, hvězdu řeší shell.
ls
sa da simulovat aj cez echo
:
echo * .*neviem ake prostredie ti je familiarne, ale aj DOSovske (ci teraz Windowsacke)
dir
sa sprava velmi podobne ..
inu naspamat sa ich ucit nemusis. mas tu na to man stranky:
# man man # man lsco pouzivas casto si zapamatas..
dir
a ls
a ich vypis z pohladu uzivatela;
preto som pouzil aj alibisticke slovicka ako: "podobny", "v jednoduchosti povedane".
inak mas pravdu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.