5.6. - Uvod do Unixu

newAnonymous at 2018-06-06 12:42:27

Show hint

  • v parametru ($1) je jméno usera

  • vstup obsahuje prefix

Výstupem programu má být vypsaný seznam souborů ze všech adresářů v PATH,takovyˊchktereˊodpovıˊdajıˊprefixu.Vraˊmcijednohoprefixubymeˇlybyˊtserˇazenypodleabecedy(alepouzenaˊzvusouboru,nikolicˇaˊsticestyzPATH, takových které odpovídají prefixu. V rámci jednoho prefixu by měly být seřazeny podle abecedy (ale pouze názvu souboru, nikoli části cesty z PATH), v případě duplicit vypsat pouze ten první. Zkoušející po zkoušce zmínil, že zapomněl do zadání dodat, že sort netřídí stabilně, ale že to měl v plánu. Dále měl být seznam take omezen jen na ty soubory, pro které má uživatel právo exec (kontrolovat v pořadí nejdřív user, pak grupy (včetně sekundárních), ...). Pokud se jedná o skript, musí uživatel mít i právo pro čtení.

slunicko at 2018-06-06 13:20:52

Dodala bych, že prefixů mohlo být na vstupu hodně (jeden na řádek) a soubory se měly vypisovat s plnou cestou. Forstovi vadilo, když někdo opakovaně kontroloval příslušnost do skupin (ta se má zjistit jednou na začátku), opakovaně volal nějaké příkazy (např. ls -l, file), když by mu je stačilo zavolat jednou, nebo když se třeba volalo ls ve findu. Pak navrhoval elegantní řešení - napřed si ze všech adresářů v $PATH vybrat ty s příslušnými právy (pro daného uživatele x, příp. rx pro skripty) a pak už je jen vybírat podle prefixů. Měla jsem podle mě v písemce větší část chyb, co zmiňoval, a stejně mi dal za jedna...