Автор Тема: Питанка за bash скрипт  (Прочетена 2708 пъти)

p1k0

  • Участници
  • ***
  • Публикации: 4
    • Профил
Питанка за bash скрипт
« -: Sep 04, 2010, 20:17 »
Здравейте,

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

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Питанка за bash скрипт
« Отговор #1 -: 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
Донатъкми си командите от примера за твоите нужди, ако се налага ;)
« Последна редакция: Sep 04, 2010, 20:27 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

p1k0

  • Участници
  • ***
  • Публикации: 4
    • Профил
Re: Питанка за bash скрипт
« Отговор #2 -: Sep 04, 2010, 20:46 »
Нещо не харесва че директориите са от рода на foo bar, тоест има интервали в името на директориите
Активен

chen_dzen

  • Напреднали
  • *****
  • Публикации: 623
  • Distribution: Debian 6.0 Squeeze
  • Window Manager: GNOME
    • Профил
Re: Питанка за bash скрипт
« Отговор #3 -: Sep 04, 2010, 21:04 »
сложи го в кавички "/еди/къде си"  ;)

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Питанка за bash скрипт
« Отговор #4 -: 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


Тука "еди къде си" ти се казва директорията с интервали. С една дума - ескейпваш интервала като пред него слагаш \ (наклонена на ляво.
« Последна редакция: Sep 04, 2010, 21:40 от backtolife »
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

p1k0

  • Участници
  • ***
  • Публикации: 4
    • Профил
Re: Питанка за bash скрипт
« Отговор #5 -: Sep 04, 2010, 21:44 »
Да това го напрвих (със \) . Проблема сега е, че множеството от под директории са с интервали и там съм "мат".
Някакви идеи ?
Активен

chen_dzen

  • Напреднали
  • *****
  • Публикации: 623
  • Distribution: Debian 6.0 Squeeze
  • Window Manager: GNOME
    • Профил
Re: Питанка за bash скрипт
« Отговор #6 -: Sep 04, 2010, 21:47 »
backtolife , я пробвай с кавички и пак се върни и си редактираи поста.

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Питанка за bash скрипт
« Отговор #7 -: Sep 04, 2010, 21:48 »
я пробвай с кавички и пак се върни и си редактираи поста.

Да го д*хаш. Пробвах.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

triel

  • Напреднали
  • *****
  • Публикации: 36
    • Профил
Re: Питанка за bash скрипт
« Отговор #8 -: Sep 04, 2010, 22:52 »
Код
GeSHi (Bash):
  1. find '/път/до/директорията ти' -type f -name '*.rar' -exec unrar x '{}' \;
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Питанка за bash скрипт
« Отговор #9 -: 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 като променлива, а като текст.

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

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Bash-подаване на сигнали м/у процеси
Общ форум
bonbon 2 8089 Последна публикация Dec 23, 2006, 21:56
от lnxman
Изпълнение на bash скрипт по дадено време
Настройка на програми
xtakedownedx 4 8831 Последна публикация Apr 18, 2007, 16:44
от Hapkoc
Странности в bash
Хардуерни и софтуерни проблеми
qwert 3 8236 Последна публикация Jun 22, 2007, 10:39
от qwert
Bash скрипт
Настройка на програми
empty 39 17890 Последна публикация Aug 25, 2007, 00:31
от VladSun
Bash
Настройка на програми
tony1975 9 3205 Последна публикация Sep 03, 2007, 15:38
от VladSun