{"id":45,"date":"2019-02-17T16:32:30","date_gmt":"2019-02-17T15:32:30","guid":{"rendered":"http:\/\/pioki.waw.pl\/?p=45"},"modified":"2019-02-19T08:03:17","modified_gmt":"2019-02-19T07:03:17","slug":"wiele-podobnych-zadan-czyli-poznaj-potege-powloki","status":"publish","type":"post","link":"https:\/\/blog.ebookiarnia.pl\/?p=45","title":{"rendered":"Wiele podobnych zada\u0144, czyli poznaj pot\u0119g\u0119 pow\u0142oki"},"content":{"rendered":"\n<p>Czasem zdarza si\u0119, \u017ce potrzebne jest wykonanie kilka, kilkana\u015bcie (a mo\u017ce wi\u0119cej) polece\u0144. Przyk\u0142adowo, aby m\u00f3c rozpakowa\u0107 wiele archiw\u00f3w zip, mo\u017cemy spr\u00f3bowa\u0107 wykona\u0107 polecenie:<br><\/p>\n\n\n\n<p class=\"terminal\">unzip *.zip<\/p>\n\n\n\n<p> Niestety program zip potraktuje to jako archiwum wielocz\u0119\u015bciowe i zako\u0144czy swoje dzia\u0142anie b\u0142\u0119dem. Ka\u017cde z tych archiw\u00f3w powinno zosta\u0107 rozpakowane za pomoc\u0105 oddzielnego polecenia. Ale oczywi\u015bcie nie trzeba tego robi\u0107 r\u0119cznie. Du\u017co lepiej do tego zadania wykorzysta\u0107 narz\u0119dzie wbudowane w pow\u0142ok\u0119.<\/p>\n\n\n\n<p>Pow\u0142oka bash ma wbudowan\u0105 p\u0119tl\u0119 typu &#8222;for&#8221;. Po wi\u0119cej informacji mo\u017cna zajrze\u0107 do podr\u0119cznika systemowego man (za pomoc\u0105 polecenia <code>man bash<\/code> &#8211; warto skorzysta\u0107 z opcji wyszukiwania po wpisaniu znaku &#8222;\/&#8221;). <\/p>\n\n\n\n<p>Rozwi\u0105zanie problemu to zaledwie jedne polecenie:<\/p>\n\n\n\n<p class=\"terminal\">for nazwa in *.zip ;do unzip $nazwa;done;<\/p>\n\n\n\n<p>Dodam jeszcze kilka s\u0142\u00f3w wyja\u015bnienia. P\u0119tla za ka\u017cdym razem podstawia za zmienn\u0105 <code>nazwa<\/code> jeden z argument\u00f3w z listy  wskazanej przez s\u0142owo kluczowe <code>in<\/code> (w przyk\u0142adzie wszystkie pliki z bie\u017c\u0105cego katalogu z ko\u0144c\u00f3wk\u0105 &#8222;.zip&#8221;). A w p\u0119tli mamy jedno polecenie (oczywi\u015bcie  je\u015bli chcemy mo\u017cemy ich wstawi\u0107 wi\u0119cej) kt\u00f3re rozpakowuje pojedynczy plik. Po szczeg\u00f3\u0142y odsy\u0142am do podr\u0119cznika (man bash).<\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czasem zdarza si\u0119, \u017ce potrzebne jest wykonanie kilka, kilkana\u015bcie (a mo\u017ce wi\u0119cej) polece\u0144. Przyk\u0142adowo, aby m\u00f3c rozpakowa\u0107 wiele archiw\u00f3w zip, mo\u017cemy spr\u00f3bowa\u0107 wykona\u0107 polecenie: unzip *.zip Niestety program zip potraktuje to jako archiwum wielocz\u0119\u015bciowe i zako\u0144czy swoje dzia\u0142anie b\u0142\u0119dem. Ka\u017cde z tych archiw\u00f3w powinno zosta\u0107 rozpakowane za pomoc\u0105 oddzielnego polecenia. Ale oczywi\u015bcie nie trzeba tego [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii"],"_links":{"self":[{"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":5,"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions\/52"}],"wp:attachment":[{"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ebookiarnia.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}