Форум русскоязычного сообщества Ubuntu


Автор Тема: Мой первый BASH скрипт  (Прочитано 723 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kiggiss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Мой первый BASH скрипт
« : 04 Ноябрь 2013, 16:48:30 »
Здравствуйте,

Первый раз почувствовал всю силу написания скрипта в Линукс. Сразу оговорюсь я новичок в программировании и в Линуксе и до сего дня никаких скриптов не писал. Бывалым возможно это покажется смешным, но для меня это одно из существенных достижений. :P

Недавно у меня случился то, чего боиться любой пользователь - обвал моего внешнего диска 1,5 ТБ.  :idiot2:Пришлось восстанавливать все с помощью photorec, т.к. структура диска была полностью потеряна. Восстановил 1 ТБ информации, но возникла пробема. Все файлы программа photorec распихала в 2760 папок! recup_dir.1 ... recup_dir.2760 :D Что делать? Как рассортировать файлы? Понятно, что одной командой mv или cp тут уже не обойтись. Тут мне приша в голову написать скрипт!!! Пару дней я обдумывал эту идею и однажды вечером сел за комп и стал пробовать разные варианты. В итоге после полутора часа проб и ошибок выдал следующее:

#!/bin/bash
# loop for using C++ syntax

echo

LIMIT=2760

for ((a=1; a<=LIMIT; a++))
do
cd /media/My\ Passport/recup_dir.$a
mv *.jpg /media/My\ Passport/JPG
done

echo

Все заработало! УРААА! После того, как вытащил из папок почти 200 ГБ фоток принялся модифицировать свой скрипт и в итоге вытащил практически все интересующие меня файлы!!!  :coolsmiley: Теперь уже будет проще идентифицировать файлы и распихать из по папкам.

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Мой первый BASH скрипт
« Ответ #1 : 04 Ноябрь 2013, 17:25:28 »
Раздел не тот...

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 5424
    • Просмотр профиля
Re: Мой первый BASH скрипт
« Ответ #2 : 04 Ноябрь 2013, 18:04:06 »
Код: (bash) [Выделить]
mv /media/My\ Passport/recup_dir.*/*.jpg /media/My\ Passport/JPG

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Мой первый BASH скрипт
« Ответ #3 : 04 Ноябрь 2013, 18:34:54 »
Если мы не хотим перезаписать существующие файлы при совпадении имён, надо использовать ключ "-i".

Оффлайн kiggiss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Re: Мой первый BASH скрипт
« Ответ #4 : 04 Ноябрь 2013, 18:42:16 »
Код: (bash) [Выделить]
mv /media/My\ Passport/recup_dir.*/*.jpg /media/My\ Passport/JPG

Очень лаконично и просто! Подозревал что можно обойтись одной командой но не хватило мозгов и опыта :)

SlimmeJongen

  • Гость
Re: Мой первый BASH скрипт
« Ответ #5 : 04 Ноябрь 2013, 18:49:28 »
Сорри за флуд, но новичкам следует почаще испытывать такой восторг от мощи Linux,а то все больше минор.

 

Страница сгенерирована за 0.071 секунд. Запросов: 25.