Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: p1k0 в Sep 04, 2010, 20:17



Титла: Питанка за bash скрипт
Публикувано от: p1k0 в Sep 04, 2010, 20:17
Здравейте,

Можете ли да ми предложите скрипт написан на bash, който да обхожда директории (прилежащи под директории) и при наличието на rar файлове в тях да ги разархивира ?


Титла: Re: Питанка за bash скрипт
Публикувано от: neter в Sep 04, 2010, 20:24
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. find /еди/къде/си | grep '.rar' | while read i
  4. do
  5.   unrar x $i
  6. done
Донатъкми си командите от примера за твоите нужди, ако се налага ;)


Титла: Re: Питанка за bash скрипт
Публикувано от: p1k0 в Sep 04, 2010, 20:46
Нещо не харесва че директориите са от рода на foo bar, тоест има интервали в името на директориите


Титла: Re: Питанка за bash скрипт
Публикувано от: chen_dzen в Sep 04, 2010, 21:04
сложи го в кавички "/еди/къде си"  ;)


Титла: Re: Питанка за bash скрипт
Публикувано от: b2l в Sep 04, 2010, 21:33
сложи го в кавички "/еди/къде си"  ;)
Говориш глупости.

Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. find /път/до/еди\ къде\ си | grep '.rar' | while read i
  4. do
  5.   unrar x $i
  6. done


Тука "еди къде си" ти се казва директорията с интервали. С една дума - ескейпваш интервала като пред него слагаш \ (наклонена на ляво.


Титла: Re: Питанка за bash скрипт
Публикувано от: p1k0 в Sep 04, 2010, 21:44
Да това го напрвих (със \) . Проблема сега е, че множеството от под директории са с интервали и там съм "мат".
Някакви идеи ?


Титла: Re: Питанка за bash скрипт
Публикувано от: chen_dzen в Sep 04, 2010, 21:47
backtolife , я пробвай с кавички и пак се върни и си редактираи поста.


Титла: Re: Питанка за bash скрипт
Публикувано от: b2l в Sep 04, 2010, 21:48
я пробвай с кавички и пак се върни и си редактираи поста.

Да го д*хаш. Пробвах.


Титла: Re: Питанка за bash скрипт
Публикувано от: triel в Sep 04, 2010, 22:52
Код
GeSHi (Bash):
  1. find '/път/до/директорията ти' -type f -name '*.rar' -exec unrar x '{}' \;


Титла: Re: Питанка за bash скрипт
Публикувано от: neter в Sep 05, 2010, 02:47
... Или сложи променливата $i в кавички. Т.е.
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. find /път/до/еди\ къде\ си | grep '.rar' | while read i
  4. do
  5.   unrar x "$i"
  6. done
Задължително двойни кавички, а не единични, тъй като иначе парсерът няма да прочете $i като променлива, а като текст.

Относно спора за кавички или наклонени черти - и двете вършат работа ;)