Portál AbcLinuxu, 18. července 2025 20:38


Dotaz: Script-bash

21.5.2012 18:54 Tomáš
Script-bash
Přečteno: 427×
Odpovědět | Admin
Dobrý den, ve světě linuxu jsem poměrně nový a proto bych potřeboval poradit, potřeboval bych napsat následující script:

Napište skript, který prohledá celou adresářovou strukturu od /home/tmp

Argumenty skriptu Arg1 – počáteční hloubku vyhledávání, 0 – začne od /home/tmp Arg2 - název hledaného souboru (pro testování zadávejte kuku1, kuku2) Arg3 – adresář pro vyhledávání (/home/tmp)

Program pro každý nalezený soubor vypíše: - Adresář - Hloubku adresáře – počítáno od /home/tmp = 0 - Obsah souboru

Mělo by to být pro bash, předem díky

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.5.2012 19:02 thefox | skóre: 25 | Ťapešovo
Rozbalit Rozbalit vše Re: Script-bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://www.abclinuxu.cz/faq/aplikace/udelate-za-me-ukol

Aspoň náznak vlastnej snahy, alebo niečo viac ako copy-paste zadania, by zvýšil tvoje šance na úspech...
0118 999 881 999 119 725 3
21.5.2012 19:05 Tomáš
Rozbalit Rozbalit vše Re: Script-bash
To se omlouvám, ale právě jsem dodělal tři skripty a tenhle už je vážně nad moje síly.. Každopádně bych byl velmi vděčný za každou pomoc!
21.5.2012 19:10 thefox | skóre: 25 | Ťapešovo
Rozbalit Rozbalit vše Re: Script-bash
V takomto prípade choď za učiteľom na konzultácie, dajte so spolužiakmi hlavy dohromady, alebo sa inteligentne popýtaj na (aj tomto, ale naozaj nie takto) fóre, ale nechať si spraviť kompletné zadanie, to by bola škoda hlavne pre teba.

Trochu rtfm: http://www.catb.org/~esr/faqs/smart-questions.html
0118 999 881 999 119 725 3
21.5.2012 19:14 Tomáš
Rozbalit Rozbalit vše Re: Script-bash
Asi takhle, školu si dodělávám dálkově a tenhle předmět je jenom výstřelek úplně mimo mísu. Dělá nás to cca 10 lidí - všichni kolem 30 let a ten učitel defakto začal tokovýmto příkladem. Samozřejmě je mi to blbý, ale psát sem to zadání po částech by asi pro mě nemělo žádný smysl
21.5.2012 19:19 Kit
Rozbalit Rozbalit vše Re: Script-bash
Smysl by mělo sem poslat skript, který jsi zkoušel, který ti z nějakého důvodu nefunguje a nevíš proč.
21.5.2012 19:22 Tomáš
Rozbalit Rozbalit vše Re: Script-bash
Ok, zkusím ještě něco sesmolit a kdyžtak to sem vložím!
21.5.2012 19:07 Tomáš
Rozbalit Rozbalit vše Re: Script-bash
Samozřejmě by mi to stačilo i s úplně jinými argumenty.. předělat to už pak není problém
21.5.2012 19:05 Kit
Rozbalit Rozbalit vše Re: Script-bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
man find
21.5.2012 21:12 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Script-bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokial nechces byt cely zivot "ve světě linuxu poměrně nový", tak si to sprav sam.
If you hold a Unix shell up to your ear, you can you hear the C.
21.5.2012 22:01 l4m4
Rozbalit Rozbalit vše Re: Script-bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Smíš-li použít find, tak je ten skript one-liner, který pouze spustí find se správnými argumenty. Viz -mindepth, -printf, -exec (z toho ,obsah souboru` mi vstávají chlupy, ale budiž).

Pokud máš v bashi implementovat rekursivní prohledávání, které bude fungovat správně i v obskurnějších situacích, tak to je už zajímavější, ale v každém případě sem nejdřív vlož, cos stvořil, a dá se poradit, co tam nefunguje a co s tím.
21.5.2012 22:56 Tomáš
Rozbalit Rozbalit vše Re: Script-bash
Díky! Zatím mám find ~/ -name "kuku1"
21.5.2012 23:31 Tomáš
Rozbalit Rozbalit vše Re: Script-bash
maličko jsem pokročil: #!/bin/bash echo "zadej nazev" sleep 10 read NAZEV echo "soubor se nachazi v adresari:" find ~/ -name $NAZEV
22.5.2012 01:26 Zadejte vaše jméno
Rozbalit Rozbalit vše Re: Script-bash
Myslim ze argumentem se mysli spis tady to:
./script.sh argument1 argument2 argument3
Ve skriptu se k nim da dostat pomoci $n, kde n je cislo argumentu, tzn. echo $1 ve skriptu vypise argument1, echo $2 argument2... Pak uz staci jenom v man find vyhledat vhodne parametry pro find, napriklad pro minimalni hloubku je v hodny parametr -mindepth, takze staci napsat find "$1" -mindepth $2 -name "$3" a najednou muzu paramtrem 1 ovlivnovat adresar ve kterem vyhledavam, parametrem 2 minimalni hloubku ve ktere hledam a paramtrem 3 jmeno souboru ktere hledam, pokud chci hledat jenom soubory tak pouziju -type f, pokud chci vypsat treba jenom nazev souboru tak pouziju -printf "nazev: %f\n", pokud chci vypsat obsah tak pouziju -exec cat {} \; atd.
Vse je to napsane v man find. :)
22.5.2012 15:12 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Script-bash
Podle zadání to beztak asi chce procházet rekurzivně v Bash (indicie: chce vypisovat hloubku pro každý nalezený soubor). Ne že by to s tím find nešlo.
22.5.2012 19:46 l4m4
Rozbalit Rozbalit vše Re: Script-bash
Co má indikovat ta indicie? find snad má -printf %d...
23.5.2012 11:00 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Script-bash
Máš pravdu, předpokládal jsem, že to s findem asi půjde, ale že až tak snadno ne, v tom případě je to na find (jak) ušité.
23.5.2012 09:58 Tomáš
Rozbalit Rozbalit vše Re: Script-bash
díky moc, už by to mělo vše fungovat!
Bystroushaak avatar 23.5.2012 11:41 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Script-bash
Co máš pořád se těma vykřičníkama?!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.