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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: простой скрипт для перемещения данных  (Прочитано 1041 раз)

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

Оффлайн corn79

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
  • Я смею всё, что смеет человек!
    • Просмотр профиля
Здравствуйте, уважаемые программисты!
Я не программист, поэтому вставшая передо мной задача, оказалась для меня неразрешимой. Поэтому решил обратиться за помощью сюда.

Итак. Требуется скрипт для перемещения данных с заражённой OC Windows (естественно всё делается из под Убунты) например на съёмный носитель. Перенос осуществляем пофайловый, без директорий, чтобы не перетащить сифилис. Для этого скрипт создаёт необходимые директории и помещает в них соответствующие файлы по расширению. Я написал такой скрипт, но он не работает. Не выполняется условие, что если в директории нет файлов для переноса, то переходим к следующей директории. В общем смотрите мой скрипт. И ещё надо учесть сканирование до седьмой директории вглубь. ### - это название раздела ОС Windows.
(Нажмите, чтобы показать/скрыть)
Не обращайте внимание на синтаксис. Это для удобства просмотра. В рабочем скрипте всё в одну строку.
« Последнее редактирование: 07 Апреля 2011, 08:58:05 от truegeek »
Asus eee-pc 1000H

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: простой скрипт для перемещения данных
« Ответ #1 : 06 Апреля 2011, 08:27:34 »
Зачем пишите в одну строку.  Это не правильно и не удобно отлаживать.
Сделайте скрипт файлом. Будет удобно его отлаживать комментированием или раскомментированием строк.
Посмотрите рекурсивное копирование (перемещение). Это ключик -r, как правило.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: простой скрипт для перемещения данных
« Ответ #2 : 06 Апреля 2011, 08:46:04 »
find /media/###/ -type f -iname \*.jpg -exec mv '{}' /media/usb-data/res/foto \;
find /media/###/ -type f -iname \*.doc -o -iname \*.docx -o -iname \*.xls ... -exec mv '{}' /media/usb-data/res/doc \;
...
man find

Axa-Ru

  • Гость
Re: простой скрипт для перемещения данных
« Ответ #3 : 06 Апреля 2011, 08:50:46 »
1. Советую проверить исходный носитель антивирусом.
2. Команду копирования каждого типа файлов замените на команду следующего вида:
find /media/### \( -name "*JPG" -o -name "*jpg" \) -print0 | xargs -0 -l -t -I {}  cp {} /media/usb-data/res/foto

Оффлайн corn79

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
  • Я смею всё, что смеет человек!
    • Просмотр профиля
Re: простой скрипт для перемещения данных
« Ответ #4 : 06 Апреля 2011, 08:54:15 »
find /media/###/ -type f -iname *.jpg -exec mv '{}' /media/usb-data/res/foto ;
find /media/###/ -type f -iname *.doc -o -iname *.docx -o -iname *.xls ... -exec mv '{}' /media/usb-data/res/doc ;
...
man find

А что тут отвечает за создание директории foto на съёмном носителе?

Пользователь решил продолжить мысль 06 Апреля 2011, 08:58:05:
1. Советую проверить исходный носитель антивирусом.
2. Команду копирования каждого типа файлов замените на команду следующего вида:
find /media/### \( -name "*JPG" -o -name "*jpg" \) -print0 | xargs -0 -l -t -I {}  cp {} /media/usb-data/res/foto

антивирусом проверять не актуально. раздел с виндой пойдёт под нож, а файлы необходимо спасти. копировать вручную долго.

а mkdir тут работает, если я его напишу, чтобы вручную директории на USB-HDD не создавать?
« Последнее редактирование: 06 Апреля 2011, 08:58:05 от corn79 »
Asus eee-pc 1000H

Axa-Ru

  • Гость
Re: простой скрипт для перемещения данных
« Ответ #5 : 06 Апреля 2011, 09:23:20 »
Вы первую команду создания каталогов оставте, а каждую команду копирования замените на строку указанную arcfi или мной.
Они приктически идентичны.

Оффлайн corn79

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
  • Я смею всё, что смеет человек!
    • Просмотр профиля
Re: простой скрипт для перемещения данных
« Ответ #6 : 06 Апреля 2011, 09:38:53 »
Вы первую команду создания каталогов оставте, а каждую команду копирования замените на строку указанную arcfi или мной.
Они приктически идентичны.

а можно ср заменить на mv?
Asus eee-pc 1000H

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: простой скрипт для перемещения данных
« Ответ #7 : 06 Апреля 2011, 10:15:40 »
cp копирует, а
mv перемещает ( копирует и источник чистит).
Что хотите, то и сделайте.

Оффлайн corn79

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
  • Я смею всё, что смеет человек!
    • Просмотр профиля
Re: простой скрипт для перемещения данных
« Ответ #8 : 06 Апреля 2011, 10:32:15 »
 :D Всем большое спасибо!

ВСЁ РАБОТАЕТ!
Asus eee-pc 1000H

Axa-Ru

  • Гость
Re: простой скрипт для перемещения данных
« Ответ #9 : 06 Апреля 2011, 11:34:03 »
Надо проверить антивирусом. С файлами вы могли и сифилис перенести.

Оффлайн corn79

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
  • Я смею всё, что смеет человек!
    • Просмотр профиля
Re: простой скрипт для перемещения данных
« Ответ #10 : 08 Апреля 2011, 15:24:41 »
а как быть с совпадением имён у разных файлов? при копировании он сохраняет только первый файл, а последующие игнорирует.  можно как -нибудь научить его переименовывать файлы при совпадении имён?
Asus eee-pc 1000H

 

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